Qt QML:如何自定义组件并在同一文件中使用它
QML中是否有一些语法可以在同一个文件中定义和使用这样的组件Qt QML:如何自定义组件并在同一文件中使用它,qt,user-interface,qml,qtquick2,Qt,User Interface,Qml,Qtquick2,QML中是否有一些语法可以在同一个文件中定义和使用这样的组件 import QtQuick 2.6 import QtQuick.Window 2.2 var MyButton = Rectangle { width : 100; height : 60; color : "red" } // define it Window { visible: true MyButton // use it } 您不能直接使用内联组件,但可以使用加载程序: Component {
import QtQuick 2.6
import QtQuick.Window 2.2
var MyButton = Rectangle { width : 100; height : 60; color : "red" } // define it
Window {
visible: true
MyButton // use it
}
您不能直接使用内联组件,但可以使用加载程序:
Component {
id: btn
Button { width = 100; height = 60; background = "red" }
}
Loader {
sourceComponent: btn
}
另一个缺点是不能直接为创建的对象指定属性
您还可以将组件用作视图和中继器等的委托
这是QML最大的遗漏之一。由@dtech提供动力
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Component { id: btn; Rectangle { width : 100; height : 100; color : "red" } }
Column {
spacing: 10
Loader { sourceComponent: btn }
Loader { sourceComponent: btn; width: 300 }
Loader { sourceComponent: btn; width: 1000 }
}
}
结果是:
成功了。我可以自定义按钮的宽度。看我在这个问题下面的截图。这个技巧对于大小是有效的,因为在那个特定的场景中,物品将填充加载器,但仅此而已。例如,不能直接设置信号处理程序,必须使用
Connections
元素。