У меня возникли проблемы с запуском диалогового окна из Python3/PyGObject, которое я создал с помощью дизайнера интерфейса Glade. Сигналы не подключены правильно, так как я получаю эту ошибку, когда я пытаюсь запустить этот скрипт:Как правильно запустить диалог из Python3/PyGObject, который был сгенерирован с использованием Glade
AttributeError: Handler button_click_dialog not found
Кроме того, я не знаю, где я могу установить мое переходное родительское окно:
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Здесь моя поляна файл: http://pastebin.com/yKz3P58s
А вот мой python3/PyGObject файл:
#!/usr/bin/env python3
# Gtk imports
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
# Initialize Gtk builder and import UI
builder = Gtk.Builder()
builder.add_from_file("windowtest.glade")
# Get objects from builder
window = builder.get_object("ButtonWindow")
dialog = builder.get_object("ButtonDialog")
class ButtonWindow:
def on_delete_window(self, *args):
Gtk.main_quit(*args)
def button_click_window(self, widget):
print("button_click_window")
response = dialog.run()
if response == Gtk.ResponseType.OK:
print("OK")
elif response == Gtk.ResponseType.CANCEL:
print("CANCEL")
dialog.destroy()
class ButtonDialog:
def __init__(self):
print("dialog init")
def button_click_dialog(self, widget):
print("button_click_dialog")
# Connect signals
builder.connect_signals(ButtonWindow())
builder.connect_signals(ButtonDialog())
# Show main window
window.show_all()
# Enter main loop
Gtk.main()
Может кто-нибудь помочь мне понять, как позвонить/запустить/уничтожить мой диалог? И как я должен подключать сигналы?
Спасибо за ваш ответ, elya5. Мне было бы очень интересно разделить эти два на свои собственные файлы. Проблема в том, что я попробовал это, как вы объяснили, но я не понял. Можете ли вы помочь мне исправить это? windowwindow.py: http://pastebin.com/MW8dRLys windowdialog.py: http://pastebin.com/1nCAUSjc windowtest.glade: без изменений. – mursuhaukka
Поместите окно и диалог в два отдельных файла поляны – elya5
Хорошо. Как мне импортировать, создавать экземпляры и запускать диалог, когда мой диалог находится в отдельном файле? У меня такие же .py-файлы, как и раньше. – mursuhaukka