解决 QML 导入中的资源歧义
Resolve resource ambiguity in QML imports
我需要同时使用 QtLabs 和 QtQuickControls。两者都有 Button
类型,但我需要使用 QuickControls 中的那个。 QML 文件正在实验室中选择按钮。我如何强制它使用 QuickControls 中的那个?
import QtQuick 2.6
import QtQuick.Controls 1.5 //This is what I need the QML file to pick button from
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
import QtQuick.Dialogs 1.2
import QtMultimedia 5.6
import Qt.labs.controls 1.0 //This is where it is picking Button from
解决此问题的 fast/easy 方法是使用 as
关键字进行命名导入。为导入命名后,模块中的所有组件都可以通过该名称访问。
您的导入示例:
import QtQuick 2.6
import QtQuick.Controls 1.5 as Ctrl1 //name for old controls
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
import QtQuick.Dialogs 1.2
import QtMultimedia 5.6
import Qt.labs.controls 1.0 as Ctrl2 //name for new controls
Ctrl2.ApplicationWindow {
id: root
visible: true
width: 400
height: 300
Column {
anchors.fill: parent
Ctrl1.Button {
text: qsTr("one")
}
Ctrl2.Button {
text: qsTr("two")
}
}
}
这种方法很容易变得过于冗长。在那种情况下,我会将不同文件中的内容分开,物理上分开有问题的导入。
我需要同时使用 QtLabs 和 QtQuickControls。两者都有 Button
类型,但我需要使用 QuickControls 中的那个。 QML 文件正在实验室中选择按钮。我如何强制它使用 QuickControls 中的那个?
import QtQuick 2.6
import QtQuick.Controls 1.5 //This is what I need the QML file to pick button from
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
import QtQuick.Dialogs 1.2
import QtMultimedia 5.6
import Qt.labs.controls 1.0 //This is where it is picking Button from
解决此问题的 fast/easy 方法是使用 as
关键字进行命名导入。为导入命名后,模块中的所有组件都可以通过该名称访问。
您的导入示例:
import QtQuick 2.6
import QtQuick.Controls 1.5 as Ctrl1 //name for old controls
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
import QtQuick.Dialogs 1.2
import QtMultimedia 5.6
import Qt.labs.controls 1.0 as Ctrl2 //name for new controls
Ctrl2.ApplicationWindow {
id: root
visible: true
width: 400
height: 300
Column {
anchors.fill: parent
Ctrl1.Button {
text: qsTr("one")
}
Ctrl2.Button {
text: qsTr("two")
}
}
}
这种方法很容易变得过于冗长。在那种情况下,我会将不同文件中的内容分开,物理上分开有问题的导入。