#python #gtk
#питон #gtk ( гтк ) #python #gtk
Вопрос:
Моя оригинальная программа использовала input
, вот так:
n = input("Enter your favorite number: ")
# do stuff with number
Теперь я переключился на графический интерфейс GTK, но все еще хочу выполнить то же самое. Теперь взгляните на этот очень похожий фрагмент кода:
n = myWindow.getNumber()
# do stuff with number
Можно ли было бы написать getNumber()
метод, который возвращается только после того, как пользователь нажимает кнопку отправки в окне? (например, как работает input
функция) или это мой единственный вариант:
def callback(widget, event):
n = myWindow.inputWidget.getValue()
# do stuff with number
n = myWindow.getNumber(callback)
Обновление: я собираюсь сделать это без gtk.Диалоговое окно, поскольку я не хочу, чтобы диалоговое окно появлялось каждый раз, когда требуется пользовательский ввод.
Ответ №1:
Что вам нужно, так это модальный диалог. Я вообще не знаю GTK (или PyGTK), но, кажется, в документации есть пример.
Комментарии:
1. Спасибо, но модальное диалоговое окно просто запрещает пользователю взаимодействовать с любыми виджетами за пределами диалогового окна.
2. @Sam: насколько я знаю, метод run gtk. Диалоговое окно блокирует программу и возвращается только тогда, когда получает ответ (обратный вызов не требуется). Создание подкласса gtk. Диалог может быть тем, что вам нужно.