python - 连接类型不适用于覆盆子
问题描述
我有以下代码可以在我的机器上运行:
Connections{
target: gridmodel
enabled: true
function onDataFetch(status){
console.log(status, "it is status")
loaderrorlbl.visible = !status
}
Component.onCompleted:{
console.log("Connection created")
}
}
有了这个进口:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0
import QtQuick.Layouts 1.0
onDataFetch是我 Python 端的一个信号:
dataFetch = Signal(bool)
该项目在我的机器上运行良好,但是当我在 raspberry/raspbian 中运行它时,除了 Connection 中的 onDataFetch 之外,一切正常。
我在两台机器上都使用pyside2,QML 导入是一样的,我机器中的 qmake – 版本是:
QMake version 3.1
Using Qt version 5.15.2 in /usr/lib/x86_64-linux-gnu
在树莓派上:
QMake version 3.1
Using Qt version 5.11.3 in /usr/lib/arm-linux-gnuabihf
我在网上没有找到任何解决方案或类似问题,有人知道这个问题吗?
解决方案
使用函数作为插槽是新 qml 语法的一部分,并且由于您使用的是旧版本,因此它不支持它。您必须将其更改为:
Connections {
target: gridmodel
onDataFetch: function(status){
console.log(status, "it is status")
}
}
注意:如果您想为 rpi 开发兼容代码,则可以安装与您使用的版本类似的版本:python -m pip install PySide2==5.11.2
推荐阅读
- vue.js - 如何从 Vue CLI 构建中排除静态文件?
- c# - 依赖注入 - HttpClient 和 OAuth2
- python - 在python的文本小部件中插入文本的问题
- c# - 重复作业不会在设定的时间被调用
- php - 我如何知道命令执行是否完成并在发生错误时通知?
- python - 如果并行运行 Pytest,则跳过/排除测试模块
- javascript - 如何以毫秒为单位将时间戳转换为 javascript?(在反应中)
- selenium - Python selenium 等到不等搜索出现
- google-sheets - 如何在 googlesheet 公式中编写动态工作表引用?
- dart - 单个变量的多种类型(参数/返回类型)