我需要同时使用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
答案 0 :(得分:3)
解决问题的快速/简便方法是使用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")
}
}
}
这种方法很容易变得过于冗长。在这种情况下,我会将不同文件中的内容分开,从物理上分离违规导入。