私は PyGTK GUI プロジェクトに取り組んでいます。知りたいのですが、gtk.Entry から変数値を取得する方法はありますか?
text=gtk.Entry(0)
text.set_activates_default(True)
port = text.get_text()
テキストボックスはデフォルトで空で、get_text() は空の文字列を返すため、これは機能しません。何かアイデアはありますか?
私は PyGTK GUI プロジェクトに取り組んでいます。知りたいのですが、gtk.Entry から変数値を取得する方法はありますか?
text=gtk.Entry(0)
text.set_activates_default(True)
port = text.get_text()
テキストボックスはデフォルトで空で、get_text() は空の文字列を返すため、これは機能しません。何かアイデアはありますか?
テキストボックスはデフォルトで空で、get_text() は空の文字列を返すため、これは機能しません。何かアイデアはありますか?
ユーザー入力の後にテキストを取得しようとしているようです。これを行うために、gtk はシグナルを使用して、ユーザー アクションを何かを実行する関数に接続できるようにします。あなたの場合、この関数で入力からテキストを取得する必要があります。ユーザー インタラクションについて説明していないため、最も簡単な例を示します。クリックすると、その時点でエントリに入力されたものを取得するボタンが GUI にある場合は、次のようにします。
button = gtk.Button( 'Click Me')
button.connect( 'clicked', on_button_click )
次に、on_button_click
関数を定義します。
def on_button_click(self, widget, data=None):
port = text.get_text()
print 'Port: %s' % port
上記のサンプル コードでは、クリックすると gtk.Entry からテキストを取得するボタンが作成されます。
pygtk でシグナルを使用する方法の簡単な例については、このリンクを確認してください。
テキスト フィールドはデフォルトで空なので、get_text() は空の文字列を返します。ボタンのコールバック関数またはその他の関数を追加します。したがって、その関数が呼び出されるたびに、次を使用してエントリから文字列を取得します
text.gtk_text()
ここで self を使用することもできます。メインスレッドではなく、他の関数でエントリにアクセスするため、次を使用します
self.text=gtk.Entry()
self.text.set_activates_default(True)
def foo(self,widget,event): # some callback function
port = self.text.get_text()
print port
取得方法は正しいものですが、作成直後、ユーザーはまだフィールドに何も入力できません。
ユーザーが実際にフィールドに何かを入力するのを待ってから、 を呼び出す必要がありget_text()
ます。