Вызов скрипта Python из кнопки с помощью Glade Designer

Как я могу вызвать скрипт Python для аутентификации Ubuntu One с кнопки, использующей Glade?

Мне нужно вызвать скрипт Python, например: Добавление поддержки Ubuntu One Files в ваше приложение

2
задан 11 November 2012 в 14:30

3 ответа

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

На Поляне можно добавить виджеты к GtkWindow (который является также виджетом), и виджеты действительно испускают то, что называют сигналами. Сигналы являются событиями, которые указывают, что что-то произошло. Это действие может быть пользователем, нажал на кнопку, ввел некоторый текст, изменил размер окна, и т.д.

Очень простой пример может быть найден здесь [1]

И вот извлеченная первая часть

Panels in Glade

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

Glade signals

Как Вы видите в изображении выше, каждый сигнал имеет имя и может быть связан с "обработчиком". В Вашем коде необходимо создать функцию с тем же именем Вы 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]

1
ответ дан 11 November 2012 в 14:30

Импортируйте скрипт, как вы делали бы с любым другим модулем / пакетом в Python.

import u1file
ui1file.login()

См. Ответ Эрнанца, если вы не знаете, как подключиться к кнопке.

0
ответ дан 11 November 2012 в 14:30

Будет ли это делать то, что вы хотите? Это в основном эквивалентно вводу python scriptname.py в терминале.

 import os
 os.system("python sriptname.py")
0
ответ дан 11 November 2012 в 14:30

Другие вопросы по тегам:

Похожие вопросы: