QML学习01(设置宽度、高度、坐标点、标题,信号与槽,键盘事件)

news/2025/6/21 15:27:18/

QML学习

  • 1、前言
  • 2、QML
  • 3、QML和QWidget的区别
  • 3、QtQuick下的Windows应用
  • 4、总结

1、前言

记录一下QML学习的过程,方便自己日后回顾,也可以给有需要的人提供帮助。

2、QML

QML是 Qt 框架中的一种声明式编程语言,专门用于快速设计和开发用户界面(UI)

3、QML和QWidget的区别

特性QML(Qt Quick)QWidget
实现语言QML/JavaScriptC++
动态界面流畅动画、触摸交互动画性能差,适合静态布局
适用场景现代界面、动画传统桌面应用
跨平台支持移动端(Android/iOS)、嵌入式主要支持桌面端(Windows/macOS/Linux)
复杂性需与C++后端结合直接通过C++实现
开发效率快速迭代,适合UI密集型项目编码量大,适合逻辑密集型项目

3、QtQuick下的Windows应用

主要讲QML在Windws下如何设置宽度,高度,坐标点,标题,信号与槽,键盘事件
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
Window {    //root控件    父窗口是主界面visible: truewidth: 640height: 480title: qsTr("My QML")signal mysignal()       //信号property int myValue: 0minimumWidth: 300       //最小宽度minimumHeight: 400      //最小高度maximumWidth: 700       //最大宽度maximumHeight: 600      //最大高度opacity: 0.8       //不透明度0-1//触发信号,名称第一个字母要大写onMysignal: {}//改变宽度,也会触发槽函数onWidthChanged: {console.log("width",width)}//自动生成属性修改槽函数onMyValueChanged: {}//按钮1Button {id:btn1focus: trueobjectName: "btn1"width: 50height: 50background: Rectangle{border.color: btn1.focus ? "blue" : "back"}//点击事件onClicked: {console.log("btn1 clicked");}//键盘事件//按下键盘右键,焦点移动到btn2上Keys.onRightPressed: {btn2.focus = true;}}//按钮2Button {id:btn2x:100objectName: "btn2"width: 50height: 50background: Rectangle{border.color: btn2.focus ? "blue" : "back"}onClicked: {console.log("btn2 clicked");}//键盘事件//按下键盘左键,焦点移动到btn2上Keys.onLeftPressed: {btn1.focus = true;}}//控件焦点onActiveFocusItemChanged: {console.log("active focus item changed",activeFocusItem,"object name",activeFocusItem.objectName)}
}

4、总结

以上就是QML的一些基础知识了,后续还会继续更新,浏览过程中,如若发现错误,欢迎大家指正,有问题的欢迎评论区留言或者私信。最后,如果大家觉得有所帮助,可以点一下赞,谢谢大家!祝大家天天开心,顺遂无虞!

http://www.ppmy.cn/news/1669806.html

相关文章

Windows软件插件-写mp3

下载本插件 本插件将PCM音频流编码为MP3,写入MP3音频文件。插件类型为DLL,可以在win32和MFC程序中使用。 使用方法 首先,加载本“写mp3”DLL,获得DLL模块句柄。 HMODULE hMp3 LoadLibrary(L"写mp3.dll");//加载写mp3…

《算法导论(第4版)》阅读笔记:p59-p75

《算法导论(第4版)》学习第 15 天,p59-p75 总结,总计 17 页。 一、技术总结 1. floor(向下取整) and ceiling(向上取整) For any real number x, we denote the greatest integer less than or equal to x by ⌊x⌋ (read ‘the floor of x’) and th…

红黑树和递归树

1. 红黑树(R-B Tree) 1.1. 平衡二叉查找树 背景: 普通二叉查找树(BST)问题: 在频繁插入/删除的动态更新场景下,BST 可能退化为链表,时间复杂度从 O(logn) 退化到 O(n)。 解决方…

深入探索 UTF-8 编码:从 Unicode 到字节的转换之旅

引言 为什么需要 UTF-8? 在计算机世界中,字符编码是连接人类语言与机器逻辑的桥梁。早期的 ASCII 编码仅支持英文字符,而 Unicode 的诞生解决了多语言兼容性问题。然而,Unicode 的定长编码(如 UTF-16 需 2-4 字节&…

[ctfshow web入门] web75

信息收集 scandir被禁用了 解题 cforeach(new DirectoryIterator("glob:///*") as $a){echo($a->__toString(). ); } ob_flush();cif ( $a opendir("glob:///*") ) {while ( ($file readdir($a)) ! false ) {echo $file."<br>";}c…

WordPress_Relevanssi Sql注入漏洞复现(CVE-2025-4396)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前…

麒麟系统下Tomcat部署Java Web程序(WAR包)及全链路问题排查指南

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

SQLMesh 模型管理指南:从创建到验证的全流程解析

本文全面介绍SQLMesh这一现代化数据转换工具的核心功能&#xff0c;重点讲解模型创建、编辑、验证和删除的全生命周期管理方法。通过具体示例和最佳实践&#xff0c;帮助数据工程师掌握SQLMesh的高效工作流程&#xff0c;包括增量模型配置、变更影响评估、安全回滚机制等关键操…