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

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

что мне нужно сделать, это вызвать скрипт Python, такой как: $ python u1file.py login

Добавление поддержки Ubuntu One Files в ваше приложение

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")
Другие вопросы по тегам