杂波脚本连接信号提供值e

2024-04-27 19:15:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python创建一个杂乱的ui。你知道吗

这是我的密码:

#!/usr/bin/env python
from gi.repository import Clutter, ClutterGst
import sys

class MainWindow:
    def __init__(self):
        script = Clutter.Script.new()
        script.load_from_file("mainwindow.json")
        stage = script.get_object("main-stage")
        script.connect_signals(stage)
        stage.show_all()

def main():
    ClutterGst.init(sys.argv)
    main = MainWindow()
    Clutter.main()

if __name__ == "__main__":
    sys.exit(main())

这里是主窗口.json你知道吗

{
"id": "main-stage",
"type": "ClutterStage",
"signals": [
    {
        "name": "destroy",
        "handler": "clutter_main_quit"
    }
]
}

但是,调用connect\u signals方法时会出现错误:

Traceback (most recent call last):
  File "main.py", line 19, in <module>
    sys.exit(main())
  File "main.py", line 15, in main
    main = MainWindow()
  File "main.py", line 10, in __init__
    script.connect_signals(stage)
ValueError: Pointer arguments are restricted to integers, capsules, and None. See: https://bugzilla.gnome.org/show_bug.cgi?id=683599

如果我只是排除连接信号,我就成功了。你知道吗


Tags: infrompyimportinitmainconnectsys
1条回答
网友
1楼 · 发布于 2024-04-27 19:15:37

connect_signals()方法是不可内省的,因为它假定所有可调用的符号都将通过dlsym()解析,而这只适用于C

对于解释语言和对符号执行名称损坏的语言,必须使用connect_signals_full()方法,并传递一个函数,该函数可以将UI描述数据中使用的信号处理程序名称解析为可调用对象。你知道吗

例如,您可以重用pygobject内部的Gtk重写用来实现相同功能的代码:https://git.gnome.org/browse/pygobject/tree/gi/overrides/Gtk.py#n441

相关问题 更多 >