2017-02-18 5 views
1

私はentry3、entry2、entry1からユーザー入力を取得し、3つの変数l、w、hを定義するのに2日間苦労しました。何をしようと、私はGtk.Entry.get_text()に私のエントリーを認識させることができません!ここに私のコードです。 Pythagoreanの定理問題を解くために作ったちょっとしたGUIを起動します。Pythonでは、Gtk.entryエントリボックスから値を取得し、それを変数に渡すにはどうしたらいいですか?

#!usr/bin/env python 
import math 
import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk 
a = False 
b = False 
c = True #changed for test 
l = 0 
w = 0 
h = 0 
ans = 0 

class MyGI(Gtk.Window): 
    def gtk_main_quit(self, *args): 
     Gtk.main_quit(*args) 
     raise SystemExit 
    def solve(self, widget): 
     self.builder = Gtk.Builder() 
     l = self.builder.get_object('entry3') 
     float(l) 
     print l 
     if a == True: 
      ans = math.pow(h, 2) - math.pow(w, 2) 
      ans = math.sqrt(ans) 
      print(ans) 
     if b == True: 
      ans = math.pow(h, 2) - math.pow(l, 2) 
      ans = math.sqrt(ans) 
      print(ans) 
     if c == True: 
      ans = math.pow(l, 2) + math.pow(w, 2) 
      ans = math.sqrt(ans) 
      print(ans) 
    def a_x(self, widget): 
     a = True 
     b = False 
     c = False 
     print a 
    def b_x(self, widget): 
     a = False 
     b = True 
     c = False 
    def c_x(self, widget): 
     a = False 
     b = False 
     c = True 
    def entree(self, widget): 
     pass 
builder = Gtk.Builder() 
builder.add_from_file("pythag.glade") 
builder.connect_signals(MyGI()) 
window = builder.get_object("window1") #old window method 
window.show_all() 

Gtk.main() 

私のロープの最後です。これは解決するために残された唯一の問題です

答えて

2

あなたはそれのようなGtkBuilderを使用することになっていません。ウィンドウを作成するときに.uiファイルごとに1回使用することになっています(たとえば、クラスの__init__など)。get_object()すべてをインスタンス変数にします。

私のPythonのさびですので、このような何か:

def __init__(self): 
     super().__init__() 
     builder = Gtk.Builder.new_from_file("pythag.glade") 
     builder.connect_signals(self) 
     self.window = builder.get_object("window1") 
     self.entry3 = builder.get_object("entry3") 
     self.window.show_all() 
    def solve(self, widget): 
     float(self.entry3) 

構文entryObject.props.textを使用し、GtkEntryからテキストを取得します。

+0

Errrrなぜ@ elya5の編集が拒否されたのか混乱しています。彼らは正しいと私のコードで実際のエラーを修正します。とにかく手動で追加しました。 – andlabs

+0

私も混乱しています:D – elya5

+0

'self.entry3.props.text' – TingPing

関連する問題