Qt QML按钮独占组属性?
我无法将ExclusiveGroup分配给我的可检查按钮Qt QML按钮独占组属性?,qt,qml,qtquick2,Qt,Qml,Qtquick2,我无法将ExclusiveGroup分配给我的可检查按钮 ExclusiveGroup { id: group onCurrentChanged: { if(current != null) { console.info("button checked...no!") current = null //current.checked = false <--- also this
ExclusiveGroup {
id: group
onCurrentChanged: {
if(current != null) {
console.info("button checked...no!")
current = null
//current.checked = false <--- also this
}
}
}
Column {
width: parent.width
spacing: 0
Button {
id: btnScan
flat: true
text: qsTr("But1")
width: parent.width
checkable: true
exclusiveGroup: group
}
Button {
id: btnWhiteList
flat: true
text: qsTr("But2")
width: parent.width
checkable: true
exclusiveGroup: group
}
}
将鼠标悬停在“exclusiveGroup”上会显示一个工具提示:“无效的属性名exclusiveGroup”
我已经安装了Qt5.9.1。以下是我的导入声明:
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.2
我做错了什么
谢谢您出现问题的原因如下:
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
两者都有一个按钮
,但它们的API不同。因此,首先要导入。然后,您导入。由于QML不知道您要使用哪一个,它将使用您最后导入的那个。如果您想更具体地说,在要使用的
按钮上,可以使用命名导入
然后,您可以根据需要使用两个版本中的按钮
s:
OldCtrl.Button { // from the QtQuick.Controls 1.4 }
NewCtrl.Button { // from the QtQuick.Controls 2.0 }
您引用的文档是针对QtQuick.Controls 1.x
,其中包含导入的ExclusiveGroup
。因此,您试图混合来自两个库的内容,这两个库无法一起工作
有关QtQuick.Controls 2.x的类似解决方案,请参阅
有关这两组控件的差异和用例的更多信息,请阅读:
您出现问题的原因如下:
import QtQuick.Controls 1.4
import QtQuick.Controls 2.0
两者都有一个按钮
,但它们的API不同。
因此,首先要导入。然后,您导入。由于QML不知道您要使用哪一个,它将使用您最后导入的那个。如果您想更具体地说,在要使用的按钮上,可以使用命名导入
然后,您可以根据需要使用两个版本中的按钮
s:
OldCtrl.Button { // from the QtQuick.Controls 1.4 }
NewCtrl.Button { // from the QtQuick.Controls 2.0 }
您引用的文档是针对QtQuick.Controls 1.x
,其中包含导入的ExclusiveGroup
。因此,您试图混合来自两个库的内容,这两个库无法一起工作
有关QtQuick.Controls 2.x的类似解决方案,请参阅
有关这两组控件的差异和用例的更多信息,请阅读:
这很奇怪。但是如果我还需要在2.0中定义的属性,我应该怎么做呢?有没有一种方法可以使用不同版本中定义的所有按钮属性?谢谢,ButtonGroup做到了,我接受了你的答案。然而,我仍然对版本控制感到困惑。如果你能帮我把事情弄清楚,我将非常感激:)真奇怪。但是如果我还需要在2.0中定义的属性,我应该怎么做呢?有没有一种方法可以使用不同版本中定义的所有按钮属性?谢谢,ButtonGroup做到了,我接受了你的答案。然而,我仍然对版本控制感到困惑。如果你能帮我把事情弄清楚,我将非常感激:)