Как я могу вызвать скрипт Python для аутентификации Ubuntu One с кнопки, использующей Glade?
Мне нужно вызвать скрипт Python, например: Добавление поддержки Ubuntu One Files в ваше приложение
Gtk является инструментарием UI, который предназначен, чтобы быть событийно-ориентированной платформой. Таким образом, лучший подход должен был бы ожидать некоторого события, чтобы оказаться, выполнять Ваш код Python.
На Поляне можно добавить виджеты к GtkWindow (который является также виджетом), и виджеты действительно испускают то, что называют сигналами. Сигналы являются событиями, которые указывают, что что-то произошло. Это действие может быть пользователем, нажал на кнопку, ввел некоторый текст, изменил размер окна, и т.д.
Очень простой пример может быть найден здесь [1]
И вот извлеченная первая часть
В разделе свойств направляйтесь во вкладку сигналов, имеющую ранее seleted некоторый виджет на редакторе, например, кнопка.
Как Вы видите в изображении выше, каждый сигнал имеет имя и может быть связан с "обработчиком". В Вашем коде необходимо создать функцию с тем же именем Вы choosed как Ваш дескриптор, в этом случае "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.
import u1file
ui1file.login()
См. Ответ Эрнанца, если вы не знаете, как подключиться к кнопке.
Будет ли это делать то, что вы хотите? Это в основном эквивалентно вводу python scriptname.py
в терминале.
import os
os.system("python sriptname.py")