QML学习 第一天

目录

创建一个demo:

打开VS2022

选择自己的存储路径已经项目名称:

接下来配置Qt

选择编译环境:

运行一下:

QML知识:

注意:使用VS2022开发QML的时候既是写错了属性VS是不会报错的,但是软件就是运行不起来.所以使用vs开发qml一定注意qml的属性一定要检查是否正确.

在QML中定义信号槽:


创建QML,我使用的环境是win10系统,VS2022+Qt6.2学习QML.

环境搭建不说了,其实很好搭建网上有很多关于搭建的方法.

创建一个demo:

打开VS2022

 

选择自己的存储路径已经项目名称:

接下来配置Qt

选择编译环境:

我这里选择vs2019 debug版的

运行一下:

基本的已经创建完成了.

接下来学习QML中的知识了.之前看过一点,个人个人觉得跟WPF比较类似.感觉比较亲切.不知道以后好不好学.

QML知识:

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
}

这个就是QML创建时候的默认代码

代码中的这个Window就是运行后的窗口,其中有几个属性.

第一个属性就是是否可见属性, visible 如果设置为true即为可见,false既是代码在运行也不会出现窗口.

heightwidth是设置窗口的高度和宽度的.

title属性是设置窗口的标题的.

import QtQuick 2.9
import QtQuick.Window 2.2

Window {//root 控件,相当于主界面
    visible: true
    width: 640
    height: 480
    x:50
    y:60    //相对于父控件
    title: qsTr("My QML")
}

代码段中的x和y属性是设置软件从哪里显示的.现在软件是从(50,60)这个坐标开始显示.相对于window这个控件,window就是显示器坐标.

要是其他空间的x和y就是相对于其他控件的位置.

显示器坐标是以左上角为原点,大概是这样的.

限制窗口大小

    minimumWidth: 400
    minimumHeight: 300
    maximumWidth: 800
    maximumHeight: 500

注意:使用VS2022开发QML的时候既是写错了属性VS是不会报错的,但是软件就是运行不起来.所以使用vs开发qml一定注意qml的属性一定要检查是否正确.

    color:"#FF00FF"
    opacity:0.5

color是设置窗体的颜色的

opacity是设置窗体透明度的

在QML中定义信号槽:

在qml中自定义信号:signal mySig()

这就是一个信号,mySig就是一个信号;

槽函数:

    onMySig:{
    
    }

其中前面的on和M一定要大写.

import QtQuick 2.9
import QtQuick.Window 2.2

Window {
    visible: true
    width: 600
    height: 400
    minimumWidth: 400
    minimumHeight: 300
    maximumWidth: 800
    maximumHeight: 500
    color:"#FF00FF"
    opacity:0.5
    title: qsTr("My QML")

    signal mySig()





    onMySig:{
    
    }
}
    Button{
        id:btn1
        width:50
        height:50
        focus:true
        objectName:"btn1"
        background:Rectangle{
            border.color:btn1.focus?"blue":"black"
        }
        onClicked:{
            console.log("btn1 clicked")
        }
        Keys.onRightPressed:{
            btn2.foucs = true
        }
    }
    Button{
        id:btn2
        width:50
        height:50
        x: 100
        objectName:"btn2"
        background:Rectangle{
            border.color:btn2.focus?"blue":"black"
        }
        onClicked:{
            console.log("btn2 clicked")
        }
        Keys.onLeftPressed:{
            btn1.foucs = true
        }

    }

这是添加button空间:import QtQuick.Controls 2.3需要添加

        onClicked:{
            console.log("btn1 clicked")
        }

这个就是系统槽函数.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在一个 QML 文件中调用另一个 QML 文件,你可以使用 Qt 的 `Loader` 组件。以下是一个简单的示例: 首先,创建一个名为 `Main.qml` 的 QML 文件,它将作为主视图: ```qml import QtQuick 2.0 Item { width: 400 height: 300 Loader { id: contentLoader source: "Secondary.qml" } MouseArea { anchors.fill: parent onClicked: contentLoader.source = "Secondary.qml" } } ``` 在上面的代码中,我们使用 `Loader` 组件来加载名为 `Secondary.qml` 的文件。当点击 `MouseArea` 时,我们将重新加载 `Secondary.qml` 文件。 接下来,创建一个名为 `Secondary.qml` 的 QML 文件,作为被加载的内容: ```qml import QtQuick 2.0 Rectangle { width: 200 height: 150 color: "red" Text { anchors.centerIn: parent text: "Secondary QML" font.pixelSize: 20 } } ``` 在上面的代码中,我们创建了一个红色的矩形,并在其中放置了一个居中的文本。 最后,在主应用程序中加载 `Main.qml` 文件: ```cpp #include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/Main.qml"))); return app.exec(); } ``` 通过运行上述代码,你将看到一个宽度为 400,高度为 300 的窗口。当你点击窗口时,它会加载 `Secondary.qml` 文件,并在窗口上显示一个红色的矩形和文本。 希望这可以帮助到你!如果有任何其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值