Glade 인터페이스 디자이너를 사용하여 만든 Python3/PyGObject에서 대화 상자 창을 실행하는 데 문제가 있습니다. 여기Glade를 사용하여 생성 된 Python3/PyGObject에서 대화 상자를 올바르게 실행하는 방법
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
: 신호는 I이 스크립트를 실행하려고 할 때이 오류가 있기 때문에 제대로 연결되지 않은 : 내 과도 부모 창을 설정할 수 또한
AttributeError: Handler button_click_dialog not found
을, 나도 몰라 여기 내 Python3/PyGObject 파일입니다 http://pastebin.com/yKz3P58s
그리고 :
#!/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()
내 빈터 파일입니다
누군가 내 대화를 호출/실행/파괴하는 방법을 이해할 수 있습니까? 신호를 어떻게 연결해야합니까?
builder.connect_signals(ButtonWindow())
builder.connect_signals(ButtonDialog())
그래서 당신이 ButtonWindow
클래스로 button_click_dialog
기능을 이동할 수 있습니다 또는 별도의에서 대화를 저장합니다
답변 해 주셔서 감사합니다. elya5. 나는이 두 파일을 자신의 파일로 분리하는 데 매우 흥미가있을 것이다. 문제는, 당신이 설명 할 때 그것을 시도했지만 올바르게하지 못했습니다. 이 문제를 해결하도록 도와 주시겠습니까? windowwindow.py : http://pastebin.com/MW8dRLys windowdialog.py : http://pastebin.com/1nCAUSjc windowtest.glade : 변경되지 않았습니다. – mursuhaukka
창과 대화 상자를 두 개의 별개의 glade 파일에 넣으십시오. – elya5
Ok. 대화 상자가 별도의 파일에 추가되었으므로 대화 상자를 가져 와서 인스턴스화하고 실행하려면 어떻게해야합니까? 이전과 같은 .py 파일이 있습니다. – mursuhaukka