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/JavaScript C++ 动态界面 流畅动画、触摸交互 动画性能差,适合静态布局 适用场景 现代界面、动画 传统桌面应用 跨平台 支持移动端(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 { visible: true width: 640 height: 480 title: qsTr ( "My QML" ) signal mysignal ( ) property int myValue: 0 minimumWidth: 300 minimumHeight: 400 maximumWidth: 700 maximumHeight: 600 opacity: 0.8 onMysignal: { } onWidthChanged: { console. log ( "width" , width) } onMyValueChanged: { } Button { id: btn1focus: true objectName: "btn1" width: 50 height: 50 background: Rectangle{ border. color: btn1. focus ? "blue" : "back" } onClicked: { console. log ( "btn1 clicked" ) ; } Keys. onRightPressed: { btn2. focus = true ; } } Button { id: btn2x: 100 objectName: "btn2" width: 50 height: 50 background: Rectangle{ border. color: btn2. focus ? "blue" : "back" } onClicked: { console. log ( "btn2 clicked" ) ; } Keys. onLeftPressed: { btn1. focus = true ; } } onActiveFocusItemChanged: { console. log ( "active focus item changed" , activeFocusItem, "object name" , activeFocusItem. objectName) }
}
4、总结
以上就是QML的一些基础知识了,后续还会继续更新,浏览过程中,如若发现错误,欢迎大家指正,有问题的欢迎评论区留言或者私信。最后,如果大家觉得有所帮助,可以点一下赞,谢谢大家!祝大家天天开心,顺遂无虞!