首页 > 解决方案 > 连接类型不适用于覆盆子

问题描述

我有以下代码可以在我的机器上运行:

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

我在网上没有找到任何解决方案或类似问题,有人知道这个问题吗?

标签: pythonqmlpyside2

解决方案


使用函数作为插槽是新 qml 语法的一部分,并且由于您使用的是旧版本,因此它不支持它。您必须将其更改为:

Connections {
    target: gridmodel
    onDataFetch: function(status){
        console.log(status, "it is status")
    }
}

注意:如果您想为 rpi 开发兼容代码,则可以安装与您使用的版本类似的版本:python -m pip install PySide2==5.11.2


推荐阅读