gpt4 book ai didi

Python GTK3继承

转载 作者:行者123 更新时间:2023-12-01 05:16:04 25 4
gpt4 key购买 nike

如何在 python 中继承 GTK+3 类?我正在尝试创建 Gtk.Application 的继承类,但得到的是段错误。

我尝试了很多方法,但是遇到了段错误:

class Program(Gtk.Application):
def __init__(self):
super().__init__(self)

...
prg = Program.new("app_id", flags)

最佳答案

如果我尝试你的代码片段,我实际上得到:

Traceback (most recent call last):
File "pyclass.py", line 12, in <module>
prg = Program.new("app_id", 0)
TypeError: Application constructor cannot be used to create instances of a subclass Program

这是预期的,因为您正在尝试调用 gtk_application_new() 的 Python 包装器通过使用Program.new() .

你应该使用Python构造函数形式:

class Program(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self,
application_id="org.example.Foo",
flags=Gio.ApplicationFlags.FLAGS_NONE)

prg = Program()
sys.exit(prg.run(sys.argv));

这实际上会警告您尚未实现 GApplication::activate虚函数,可以通过重写 do_activate 来实现你的Program中的虚拟方法类:

class Program(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self,
application_id="org.example.Foo",
flags=Gio.ApplicationFlags.FLAGS_NONE)
def do_activate(self):
print("Activated!")

这将打印 Activated!在退出之前在控制台上。

关于Python GTK3继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com