До сих пор мой опыт был довольно хорошим, но теперь я столкнулся с проблемой:
Когда я создаю AdwDialog code>, я могу открыть его один раз, но если я закрою его и попытаюсь открыть снова, я получу следующее сообщение об ошибке:
Код: Выделить всё
(python3:45276): Gtk-CRITICAL **: 09:46:38.651: gtk_window_present: assertion 'GTK_IS_WINDOW (window)' failed
Код: Выделить всё
import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw
class DemoWindow(Gtk.ApplicationWindow):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.set_title("Dialog Example")
self.set_default_size(200, 100)
self.dialog = Adw.Dialog(title="Dialog Example", parent=self)
self.closebtn = Gtk.Button(label="Close")
self.closebtn.connect("clicked", self.on_close_clicked)
self.dialog.set_child(self.closebtn)
button = Gtk.Button(label="Open Dialog")
button.connect("clicked", self.on_button_clicked)
self.set_child(button)
def on_button_clicked(self, button):
self.dialog.present(self.get_root())
def on_close_clicked(self, button):
self.dialog.close()
class DemoApp(Adw.Application):
def __init__(self):
super().__init__(application_id="org.example.demoapp")
self.connect("activate", self.on_activate)
def on_activate(self, app):
self.win = DemoWindow(application=app)
self.win.present()
if __name__ == "__main__":
DemoApp().run()
- Йенс
Подробнее здесь: https://stackoverflow.com/questions/791 ... dow-failed