Вызов скрипта Python из кнопки с помощью Glade Designer
Как я могу вызвать скрипт Python аутентификации Ubuntu One с помощью кнопки Glade?
что мне нужно сделать, это вызвать скрипт Python, такой как: $ python u1file.py login
3 ответа
Импортируйте скрипт, как вы делали бы с любым другим модулем / пакетом в Python.
import u1file
ui1file.login()
См. Ответ Эрнанца, если вы не знаете, как подключиться к кнопке.
Gtk - это инструментарий пользовательского интерфейса, предназначенный для управления событиями. Поэтому лучшим подходом будет подождать, когда произойдет какое-то событие для выполнения вашего кода на Python.
На Glade вы можете добавлять виджеты в GtkWindow (это тоже виджет), и виджеты действительно излучают так называемые сигналы. Сигналы - это события, которые указывают на то, что что-то произошло. Этим действием может быть нажатие пользователем кнопки, ввод текста, изменение размера окна и т. Д.
Очень простой пример можно найти здесь [ 1]
И вот часть, которую я извлек

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

Как вы можете видеть на изображении выше, каждый сигнал имеет имя и может быть привязан к "обработчику". Внутри вашего кода вы должны создать функцию с тем же именем, которое вы выбрали в качестве дескриптора, в данном случае "on_window_destroy"
Тогда ваш код должен выглядеть примерно так:
class TutorialApp(object):
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("tutorial.xml")
# Here we do the binding
builder.connect_signals({ "on_window_destroy" : my_custom_handler })
self.window = builder.get_object("window")
self.window.show()
def my_custom_handler(self, widget):
# Excecute whatever python code you want here :D
if __name__ == "__main__":
app = TutorialApp()
gtk.main()
Источник
http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html [ 1]
Будет ли это делать то, что вы хотите? Это в основном эквивалент набора python scriptname.py в терминале.
import os
os.system("python sriptname.py")