2

私は PyGTK GUI プロジェクトに取り組んでいます。知りたいのですが、gtk.Entry から変数値を取得する方法はありますか?

        text=gtk.Entry(0)
    text.set_activates_default(True)
    port = text.get_text()

テキストボックスはデフォルトで空で、get_text() は空の文字列を返すため、これは機能しません。何かアイデアはありますか?

4

3 に答える 3

3

テキストボックスはデフォルトで空で、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 でシグナルを使用する方法の簡単な例については、このリンクを確認してください。

于 2012-05-07T14:49:14.877 に答える
1

テキスト フィールドはデフォルトで空なので、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
于 2012-05-05T20:35:57.833 に答える
0

取得方法は正しいものですが、作成直後、ユーザーはまだフィールドに何も入力できません。

ユーザーが実際にフィールドに何かを入力するのを待ってから、 を呼び出す必要がありget_text()ます。

于 2012-05-05T20:24:33.003 に答える