You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6中Python向QML发射List类型信号无响应求助

解决PySide6中Python发射List信号QML无法接收的问题

你的代码核心问题是QML中Connections的槽函数名称与Python定义的信号名不匹配。Python端定义的信号是getListTest,按照QML的信号关联规则,对应的槽函数需要命名为onGetListTest(信号名首字母大写,前缀加on),而你写的是onSignal,导致信号无法被正确关联。

修改后的QML代码

Connections {
    target: signalEmitter
    function onGetListTest(res) {
        console.log(`------------`);
        console.log(`qml list is ${res}`);
        console.log(`------------`);    
    }
}

可选优化:明确信号类型

为了让类型匹配更清晰,建议在Python中显式指定信号的类型为QVariantList(PySide6中list会自动映射为QVariantList,但显式声明更易维护):

from PySide6.QtCore import QObject, Signal, Slot, QVariantList
# ...
class PythonSignalEmitter(QObject):
    getListTest = Signal(QVariantList)
    # 其余代码不变

修改后重新运行程序,触发callList槽后,QML端就能正常打印接收到的列表内容。

内容的提问来源于stack exchange,提问作者codeKiller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:14