2012-05-05 1 views
1

Я работаю над проектом GUI PyGTK, и я хотел бы знать, есть ли способ получить значение переменной из gtk.Entry?Получить значение из gtk.Entry в PyGTK

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

Это не работает, текстовое поле пустым, по умолчанию, и get_text() возвращает пустую строку, любые идеи?

ответ

0

Метод получения является правильным, но сразу после создания пользователь еще не набрал anyting в поле.

Вам нужно будет подождать, пока пользователь наберет что-то в поле, а затем вызовет get_text().

0

Поскольку ваше текстовое поле по умолчанию пустое, get_text() возвращает пустую строку. Добавить функцию обратного вызова или другую функцию. Поэтому всякий раз, когда эта функция вызывается, вы получите строку из записи, используя

text.gtk_text() 

Возможно, вы захотите использовать здесь. так как вы будете получать доступ к записи в какой-либо другой функции, а не в главном потоке, используйте

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 
2

Это не работает, текстовое поле пустым, по умолчанию, и 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.

Заканчивать это link для простого примера о том, как использовать сигналы в PyGTK

+0

этот пример спас мой день. – darxsys

Смежные вопросы