gpt4 book ai didi

c++ - 定义QML信号参数类型时出现意外的 `:' token

转载 作者:行者123 更新时间:2023-12-02 09:54:50 29 4
gpt4 key购买 nike

我正在尝试使自己熟悉QML。我正在关注this Qt提供的教程,但是遇到了问题。

问题:

创建Cell.qml文件时,需要创建一个单击信号,其中将名为cellColor的单个参数定义为color类型(如果我正确理解的话)

../QMLTest/Cell.qml:6 Unexpected token `:'


Cell.qml中有问题的代码段为:
import QtQuick 2.0

Item {
id: container
property alias cellColor: rectangle.color
signal clicked(cellColor: color) <-----Problem - line 6

width: 40; height: 25
//...
}

由于QML使用Javascript,因此我认为我将尝试这种方法,该方法有效:
signal clicked(var cellColor)

一个明显的缺点是您丢失了定义的类型(基于我之前的假设)。

问题:

为什么提供的信号代码不起作用,并且使用 var关键字而不是定义类型有什么缺点吗?

更新

接受答案后添加。

我还应该提到,我正在将Qt Creator 4.10.0与Qt 5.13.1(MSVC 32bit)结合使用

最佳答案

此语法是Qt 5.14中的新增功能。它遵循TypeScript语法以及即将推出的QML 3的方式。使用较旧的Qt版本,您将得到您提到的错误消息。迄今为止仍受支持的经典语法是

signal clicked(color cellColor)

Qt documentation about QML signals甚至都没有提到 name: type语法。

关于c++ - 定义QML信号参数类型时出现意外的 `:' token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61075757/

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