动态添加 TabButton 到 TabBar
Dynamically adding TabButton to TabBar
我正在尝试将 TabButton 动态添加到 TabBar。我的新选项卡位于一个名为 Network 的文件中,我的 GWEdit_101 源自带有 TabBar 的 class。当代码运行并尝试添加选项卡时,它会在下面的 addItem 行中出错。我搞不懂 cause/solution.
我的文件 Network.qml 是:
import QtQuick 2.0
import QtQuick.Controls 2.12
TabButton {
id: tabNetwork
contentItem: Text {
text: qsTr("NewStuff")
opacity: enabled ? 1.0 : 0.3
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
}
我的文件 GWEdit_101.qml 是:
import QtQuick 2.0
import QtQuick.Controls 2.12
GWEdit {
Component.onCompleted: {
tabBar.addItem(Network)
}
}
导致这个错误
"Could not convert argument 0 at"
"onCompleted@qrc:/content/equipment/gateway/edit/makemodels/GWEdit_101.qml:6"
您必须使用 Qt.createQmlObject
,因为网络是一个组件,而不是一个项目。
TabBar {
id: tabBar
Component.onCompleted: {
var tabItem = Qt.createQmlObject('Network{}', tabBar)
tabBar.addItem(tabItem);
}
}
我正在尝试将 TabButton 动态添加到 TabBar。我的新选项卡位于一个名为 Network 的文件中,我的 GWEdit_101 源自带有 TabBar 的 class。当代码运行并尝试添加选项卡时,它会在下面的 addItem 行中出错。我搞不懂 cause/solution.
我的文件 Network.qml 是:
import QtQuick 2.0
import QtQuick.Controls 2.12
TabButton {
id: tabNetwork
contentItem: Text {
text: qsTr("NewStuff")
opacity: enabled ? 1.0 : 0.3
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
}
我的文件 GWEdit_101.qml 是:
import QtQuick 2.0
import QtQuick.Controls 2.12
GWEdit {
Component.onCompleted: {
tabBar.addItem(Network)
}
}
导致这个错误
"Could not convert argument 0 at"
"onCompleted@qrc:/content/equipment/gateway/edit/makemodels/GWEdit_101.qml:6"
您必须使用 Qt.createQmlObject
,因为网络是一个组件,而不是一个项目。
TabBar {
id: tabBar
Component.onCompleted: {
var tabItem = Qt.createQmlObject('Network{}', tabBar)
tabBar.addItem(tabItem);
}
}