main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.2
import QtQuick.Controls 2.5
/*
import "MoveText.js" 是 JavaScript 中的导入语法,用于导入外部的 JavaScript 文件。
"MoveText.js" 是要导入的文件名。
as JS 是给导入的文件起一个别名,以便在当前文件中使用更简洁的名称来引用它。
*/
import "MoveText.js" as JS
Window {
id: window
visible: true
width: 640
height: 480
title: qsTr("真爱定律")
Rectangle{
id:rect1
anchors.fill:parent
color:"pink"
Text{
id:txt
text:"宝 你到底爱不爱我吗?"
anchors.horizontalCenter: parent.horizontalCenter
font.bold:true
font.pointSize:30
font.family:"微软雅黑"
}
}
//左边“爱”的按钮
Button{
id:leftbtn
text:"爱"
font.bold:true
font.family:"微软雅黑"
font.pointSize:18
width:100
height:40
x:100
y:200
//"background"是一个属性,其中定义了一个Rectangle元素作为背景。可以使用此属性为QML元素设置背景。
background:Rectangle{
color:"#ffffff"
opacity:0.5
anchors.fill:parent
radius:10
//border是一个属性,通过设置该属性的值来定义边框的样式。
border.color:"red"
border.width:5
}
onClicked:{
txt.text="宝 我就知道你的心里有我!!!\n 爱你木啊"
}
}
//右边“不爱”的按钮
Button{
id:rightbtn
text:"不爱"
font.bold:true
font.family:"微软雅黑"
font.pointSize:18
width:100
height:40
x:500
y:200
background:Rectangle{
color:"#ffffff"
opacity:0.5
anchors.fill:parent
radius:10
border.color:"red"
border.width:5
}
//onPressed是一个属性,用于指定当某个按钮被按下时要执行的操作。
onPressed: {
//JS.love(rightbtn,txt)被指定为按钮按下时的操作。
JS.love(rightbtn,txt)
}
}
}
MoveText.js
//对按钮和文本的一些处理
function love(btn,txt){
//Math.random()函数来生成一个随机的x和y坐标,这样按钮就可以在容器中的不同位置显示。
btn.x=Math.random()*500
btn.y=Math.random()*400
/*Math.random()函数会返回一个0到1之间的随机数。
Math.ceil()函数将这个随机数向上取整为一个整数。
所以这里通过Math.ceil(Math.random()*10)%3可以得到一个0、1或2的随机整数。
*/
switch(Math.ceil(Math.random()*10)%3)
{
case 0:txt.text="宝 求求你";break;
case 1:txt.text="宝 你要幸福好不好";break;
case 2:txt.text="宝 不要走";break;
}
}
效果图