网上注册公司流程及步骤,seo排名点来上海百首网络,河南做网站公司排名,自己做网站 需要会什么6项目 一个Qt Quick应用程序设计的横向和纵向设备#xff0c;使用自定义组件#xff0c;响应式布局和JavaScript的应用程序逻辑。 项目路径#xff1a; Qt\Examples\Qt-6.7.1\demos 环境#xff1a;Qt6.7.1 MSVC 2019 64位
项目目录#xff1a;
calqlatr--CMakeList.txt…项目 一个Qt Quick应用程序设计的横向和纵向设备使用自定义组件响应式布局和JavaScript的应用程序逻辑。 项目路径 Qt\Examples\Qt-6.7.1\demos 环境Qt6.7.1 MSVC 2019 64位
项目目录
calqlatr--CMakeList.txt --main.cpp--Main.qml--qmldir--calqlatr.procontent --NUmberPad.qml--Dispaly.qml--calculator.js--BackspaceButton.qml--CalculatorButton.qmlCMakeList.txt
创建一个动态链接库——作为QML模块的插件——该库将包含定义自定义QML元素的C类和其他资源。
自动创建一个qrc文件该文件将包含指定源文件中的所有资源例如图片、样式表和翻译文件
qt_add_qml_module(calqlatrexampleURI demos.calqlatrVERSION 1.0QML_FILESMain.qmlcontent/Display.qmlcontent/NumberPad.qmlcontent/CalculatorButton.qmlcontent/BackspaceButton.qmlcontent/calculator.jsRESOURCEScontent/images/backspace.svgcontent/images/backspace_fill.svg
)main.cpp
//QQuickStyle类允许配置应用程序样式.
QQuickStyle::setStyle(Basic);
//从uri指定的模块加载QML类型typeName。如果类型源自位于远程url的QML文件则该类型将被异步加载。监听objectCreated信号以确定对象树何时准备好。engine.loadFromModule(demos.calqlatr, Main);Main.qml
LayoutItemProxy类为布局中的QQuickItems提供了一个占位符。
显示空间和键盘空间。使用列布局和行布局进行切换。
子控件 结果显示组件操作按钮组件。Display.qml
自定义显示区组件。 使用ListView显示计算结果。列表项 操作符和操作数。
positionViewAtEnd将视图定位在开头或结尾同时考虑到任何页眉或页脚。
定义方法显示操作符,创建一个新行,添加操作数,删除和清空。
CalCulatorButton.qml
自定义按钮组件。内部提供
子控件 背景和文本。
提供方法 获取背景颜色 获取边框颜色获取文本颜色。 颜色属性。
属性 是否可模糊是否已经模糊的。
一个颜色变化的动画。BackspaceButton.qml
自定义按钮组件。
定义方法 获取图标颜色 获取图标。NUmberPad.qml
使用component 定义组件 数字按钮和操作按钮。
QML组件的构建顺序
子节点从左往右是按照代码的从上向下排列的即处于代码下面的组件先被创建出来。另外组件展示层级是由上而下的即写在代码后面的组件被展示在顶部图层即先创建的占据顶部图层。
win{Item{Dispaly{}NumberPad{}ColumnLayout {}RowLayout {}}
}qml: 窗口构建完成
qml: 主界面构建完成
qml: 行布局构建完成
qml: 列布局构建完成
qml: 数字键盘构建完成
qml: 显示组件构建完成逻辑处理使用calculator.js
在主窗口提供调用处理操作符和操作数的方法。// 操作按钮function operatorPressed(operator) {CalcEngine.operatorPressed(operator, display)}// 处理数字函数function digitPressed(digit) {CalcEngine.digitPressed(digit, display)}// 是否显示按钮function isButtonDisabled(op) {return CalcEngine.isOperationDisabled(op, display)}Keys.onPressed: function(event) {switch (event.key) {case Qt.Key_0: digitPressed(0); break;case Qt.Key_Plus: operatorPressed(); break;}}