如何使用python中的GTK3检查该窗口是否存在并可能更新其中的数据?

问题描述 投票:0回答:1

我有一个类,它调用一个带有要显示的内容的窗口(Gtk.ApplicationWindow),我想检查该窗口是否存在。如果存在,它将更新数据;如果不存在,则将创建新窗口的新实例。如何检查窗口是否存在?

编辑:

我的代码:

class LogListener:

    def __init__(self):
        print('do sth')
        AlertView()

class AlertView(Gtk.ApplicationWindow):

    def __init__(self):
        super().__init__()

        try:
            if self.window:
                self.label2.set_label('String 2')
        except AttributeError:
            self.builder = Gtk.Builder()
            self.builder.add_from_file("resources//alert_view.glade")
            self.builder.connect_signals(self)
            self.window = self.builder.get_object("window1")
            self.window.set_border_width(10)
            self.label2 = self.builder.get_object('label2')
            self.label2.set_label('String 1')
            self.button1 = self.builder.get_object('button1')
            self.button1.connect('clicked', self.on_button_clicked)
            self.window.set_keep_above(True)
            self.window.show_all()
            self.window.connect("destroy", Gtk.main_quit)

    def on_button_clicked(self, button):
        print('click')
        self.window.connect("destroy", Gtk.main_quit)

class ReportTray(Gtk.Application):
    def __init__(self, *args, **kwargs):
        super().__init__(
            application_id="exampleapp.com"       )

    def do_activate(self):
        if not hasattr(self, "my_app_settings"):
            self.hold()
            scheduler = BackgroundScheduler()
            trigger = interval.IntervalTrigger(seconds=5)
            scheduler.add_job(LogListener, trigger, max_instances=1)
            scheduler.start()
        else:
            print("Already running!")

    def do_startup(self):
        Gtk.Application.do_startup(self)

if __name__ == "__main__":
    app = ReportTray()
    app.run()
'''
python gtk3 pygtk
1个回答
0
投票

无法运行下面的代码,所以可能是错误的!

© www.soinside.com 2019 - 2024. All rights reserved.