目标效果:点击粉色按钮后,出现一行“为什么非要点我?”的文字。
用组件的方式实现:首先单击项目文件夹01,然后右键弹窗中点击“添加新文件” 。
选择 QML File 文件:
文件名就叫Button,然后把代码写进去。
import QtQuick// 放在一个 Item 中,可以保护某些属性不被修改
Item {id: testButton// 创建一个别名将text属性开放出来,这个别名就叫textproperty alias text: t1.text//这里开放了一个信号,主代码里才能使用 onClickedsignal clickedRectangle {width: 200; height: 50color: "pink"x: 100; y: 100radius: 15Text {id: t1text: "点我!"font.pixelSize: 20anchors.centerIn: parent}MouseArea {anchors.fill: parentonClicked: {testButton.clicked()}}}
}
主文件代码如下:
import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("组件(Component)")Button {text: "别点我!😊"onClicked: {t1.text = "为什么非要点我?😢"}// color: "blue" 报错!因为color这个属性并未在另外一个文件中开放}Text {id: t1// 这里没有设置text是想点击按钮后凭空冒出来,而不是改变font.pixelSize: 20x: 150; y: 200}
}
项目结构图如下: