随笔分类 - Qt / Qt Quick学习
摘要:一、简介 QML Online即 QML 在线预览工具,是一个由 EmScripten/WebAssembly 支持的 Qt/QML 适配版,该项目目前托管在 KDE 组织下。 如果你想在线练习 QML,并实时查看渲染效果,但是又没有安装 Qt,也没有 QML/qmlscene 工具时,可以使用它。
阅读全文
摘要:简介 Repeater 是一个非常特别又非常好用的类,它用来创建多个基于 Item 的组件,扔给它的 parent(通常是定位器或布局管理器)来管理。这是 Repeater 和 ListView 等类的一个显著不同。 Repeater 有三个属性,count 指示它创建了多少个基于 Item 的对象
阅读全文
摘要:转载自灼光的QML Canvas 2D绘图<下> 接着上一章的内容,本章继续进行后续画图相关操作。 一、渐变填充 Canvas 支持 3 种渐变:线性渐变、辐射渐变、锥形渐变。 1.1 线性渐变 createLinearGradient(real x0, real y0, real x1, real
阅读全文
摘要:转载自灼光的QML Canvas 2D绘图<上> 一、Canvas 介绍 要绘图先要有纸,即画布也。Qt5 中引进了画布元素 Canvas,该类型继承自Item,允许脚本绘制。Canvas 提供了一个依赖于分辨率的位图画布,能够使用JavaScript绘制直线和曲线、简单和复杂的图形、图像等等,还可
阅读全文
摘要:TableView 就是 Qt Quick 为表格式呈现数据提供的组件。想必兄台用过 Excel,可以藉此想象下 TableView 的效果。 TableView 与 ListView 类似,相比之下多了滚动条、挑选、可调整尺寸的表头等特性。 它的数据也通过 Model 来提供,你可以使用 List
阅读全文
摘要:ListView 提供了 add、remove、move、populate、displaced 几种场景的过渡动画效果,你 可以通过设置相应的属性来改变特定场景对应的过渡动画。这些场景对应的属性,类型都是 Transition,—个场景也可能有多个属性,比如新增 Item 会触发 add 过渡动画,
阅读全文
摘要:使用 ListView 是为了向用户展示某些数据,期望用户根据这些数据做出一些反馈,比如买某个东西。而我们会经常需要访问、修改一个 ListView 展现的数据。现在我们就来看看怎么做。 一、访问数据 ListModel 的 count 属性表示 Model 中有多少条数据,int 类型。dynam
阅读全文
摘要:一、前言:MVC Model-View-Controller (MVC) 是源自 SmallTalk 的一个设计模式,在构建用户界面时经常用到。作为一种经典到不能再经典的架构模式,MVC 大行其道有其必然的道理。通过把职责、 性质相近的成分归结在一起,不相近的进行隔离,MVC 将系统分解为模型、视图
阅读全文
摘要:QML 开发客户端应用,避不可免要进行界面切换,例如从登录界面跳转到主界面。网上看了下多篇博客,都比较简陋不是很详细,不太好进行参考,所以决定自己参考这些博客,总结一下几种界面切换的方法。 先看下效果: 静态 一、隐藏法 本质上各页面都存在,只是某些隐藏,某些显示,当某一触发条件满足时,设置对应页面
阅读全文
摘要:本文主要介绍基本元素 TextInput, TextField, TextEdit, TextArea 等的基本属性。Textlnput 与 TextField 为行编辑控件,TextEdit 与 TextArea 为块编辑控件。 一、Textinput Textinput 用于编辑一行文本,类似于
阅读全文
摘要:一、简介 anchors 提供了一种方式,让你可以通过指定一个元素与其他元素的关系来确定元素在界面中的位置,即锚布局。 你可以想象一下,每个 Item 都有 7 条不可见的辅线:左(left)、水平中心(horizontalCenter)、 上(top)、下(bottom)、右(right)、垂直中
阅读全文
摘要:一、简介 Button 是很常见的控件,Qt 助手的说明如下(参考 Button QML Type): Button QML Type Push-button that can be clicked to perform a command or answer a question. More...
阅读全文
摘要:上两篇看过了如何在 QML 中使用 C++ 类型或对象,现在来看如何在 C++ 中使用 QML 对象。 官方文档说,所有 QML 对象类型都是源自 QObject 类型,无论它们是由引擎内部实现还是第三方定义。这意味着 QML 引擎可以使用 Qt 元对象系统动态实例化任何 QML 对象类型并检查创建
阅读全文
摘要:上一篇介绍了第一种方法:将 C++ 类注册到 QML 环境中, QML 环境中使用该类型创建对象,这篇介绍第二种方法:在 C++ 中构造一个对象,将这个对象设置为 QML 的上下文属性,在 QML 环境中直接使用该属性。 一、注册属性 要将一个 C++ 类注册为属性很简单,CppObject 的 m
阅读全文
摘要:Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画、各种绚丽效果的 UI 都不在话下。但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket ,多线程等等,在 QML 中要么不可用,要么用起来不方便,所以呢,很多时候我们是会基于这样的原则来
阅读全文
摘要:QML 除了使用 Loader,还支持使用 JavaScript 动态创建/销毁对象,有两种方式动态创建对象: 使用 Qt.createComponent() 动态创建一个组件对象,然后使用 Component 的 createObject() 方法创建对象。 使用 Qt.createQmlObje
阅读全文
摘要:Loader 元素用来动态加载可见的 QML 组件,它可以加载一个 QML 文件(使用 source 属性)或者一个组件对象(使用 sourceComponent 属性)。 对于拖延组件的创建很是有用的:例如,当一个组件需要在要求的时候被创建,或者由于性能原因一个组件不应该被创建时。 Item {
阅读全文
摘要:一、TabView TabView 可以实现类似 Windows 任务管理器的界面,有人叫 TabView 为标签控件,有人又称之为选项卡控件,我们知道它就是这么个东西就行了。现在来介绍 TabView 的属性和方法。 count 属性是只读的,返回 TabView 内的标签页的个数。 curren
阅读全文
摘要:一、ComboBox ComboBox,即下拉列表框,由一个列表框和一个标签控件(或编辑控件)组成。ComboBox 的下拉列表是使用 Menu 实现的,列表内的每个条目对应一个 Menultem。 弹出下拉列表框后,用户选择列表中的一个条目,此时 currentlndex、currentText
阅读全文
摘要:先介绍一下 ExclusiveGroup。 ExclusiveGroup (互斥分组)本身是不可见元素,用于将若干个可选择元素组合在一起, 供用户选择其中的一个选项。你可以在 ExclusiveGroup 对象中定义 RadioButton、CheckBox、Action 等元素,此时不需要设置它们
阅读全文