随笔分类 -  Qt

摘要:MediaPlayer 是 QML 提供的核心多媒体类,可以播放音频、视频。要使用 MediaPlayer,需要引入 QtMultimedia 模块,在 QML 文档的开始加入 “import QtMultimedia 5.0” 语句。QML 中的 MediaPlayer 是 Qt C++ 中的多媒 阅读全文
posted @ 2019-12-05 00:07 fengMisaka 阅读(5065) 评论(0) 推荐(0)
摘要:开发环境: win8 + Qt5.11.2 说明: 用 QML 设计一个应用的登陆界面。 效果图: 新建一个 "Qt Quick Application - empty" 工程,分别添加 “main.qml” 、“LineInput.qml”、“ Button.qml” 这三个 qml 文件。 ma 阅读全文
posted @ 2019-11-30 22:18 fengMisaka 阅读(2276) 评论(0) 推荐(0)
摘要:上一篇介绍了第一种方法:将 C++ 类注册到 QML 环境中, QML 环境中使用该类型创建对象,这篇介绍第二种方法:在 C++ 中构造一个对象,将这个对象设置为 QML 的上下文属性,在 QML 环境中直接使用该属性。 一、注册属性 要将一个 C++ 类注册为属性很简单,CppObject 的 m 阅读全文
posted @ 2019-11-30 13:26 fengMisaka 阅读(2653) 评论(0) 推荐(0)
摘要:Qt Quick 技术的引入,使得你能够快速构建 UI ,具有动画、各种绚丽效果的 UI 都不在话下。但它不是万能的,也有很多局限性,原来 Qt 的一些技术,比如低阶的网络编程如 QTcpSocket ,多线程等等,在 QML 中要么不可用,要么用起来不方便,所以呢,很多时候我们是会基于这样的原则来 阅读全文
posted @ 2019-11-30 00:26 fengMisaka 阅读(10145) 评论(2) 推荐(5)
摘要:QML 除了使用 Loader,还支持使用 JavaScript 动态创建/销毁对象,有两种方式动态创建对象: 使用 Qt.createComponent() 动态创建一个组件对象,然后使用 Component 的 createObject() 方法创建对象。 使用 Qt.createQmlObje 阅读全文
posted @ 2019-11-29 21:02 fengMisaka 阅读(3659) 评论(0) 推荐(0)
摘要:Loader 元素用来动态加载可见的 QML 组件,它可以加载一个 QML 文件(使用 source 属性)或者一个组件对象(使用 sourceComponent 属性)。 对于拖延组件的创建很是有用的:例如,当一个组件需要在要求的时候被创建,或者由于性能原因一个组件不应该被创建时。 Item { 阅读全文
posted @ 2019-11-29 21:00 fengMisaka 阅读(5181) 评论(0) 推荐(1)
摘要:一、TabView TabView 可以实现类似 Windows 任务管理器的界面,有人叫 TabView 为标签控件,有人又称之为选项卡控件,我们知道它就是这么个东西就行了。现在来介绍 TabView 的属性和方法。 count 属性是只读的,返回 TabView 内的标签页的个数。 curren 阅读全文
posted @ 2019-11-28 21:09 fengMisaka 阅读(6118) 评论(0) 推荐(1)
摘要:一、ComboBox ComboBox,即下拉列表框,由一个列表框和一个标签控件(或编辑控件)组成。ComboBox 的下拉列表是使用 Menu 实现的,列表内的每个条目对应一个 Menultem。 弹出下拉列表框后,用户选择列表中的一个条目,此时 currentlndex、currentText 阅读全文
posted @ 2019-11-28 14:26 fengMisaka 阅读(5897) 评论(0) 推荐(0)
摘要:先介绍一下 ExclusiveGroup。 ExclusiveGroup (互斥分组)本身是不可见元素,用于将若干个可选择元素组合在一起, 供用户选择其中的一个选项。你可以在 ExclusiveGroup 对象中定义 RadioButton、CheckBox、Action 等元素,此时不需要设置它们 阅读全文
posted @ 2019-11-28 13:32 fengMisaka 阅读(8395) 评论(0) 推荐(0)
摘要:一、Textinput Textinput 用于编辑一行文本,类似于 QLineEdit。 font 分组属性允许你设置 Textlnput 元素所用字体的各种属性,包括字体族(family)、大 小(pixelSize、pointSize)、粗细(bold、weight)、斜体(italic)、下 阅读全文
posted @ 2019-11-28 13:21 fengMisaka 阅读(3054) 评论(0) 推荐(0)
摘要:一、定位器 定位器是一种容器元素,专门用来管理界面中的其他元素,与传统的 Qt Widgets 中的布局管理器类似。使用定位器,你可以很方便地把众多的元素组织在一起,形成非常规则的界面效果。定位器包括 Row(行定位器)、Column(列定位器)、Grid(表格定位器)、Flow(流式定位器)。 注 阅读全文
posted @ 2019-11-27 20:29 fengMisaka 阅读(3126) 评论(0) 推荐(1)
摘要:在 Qt Quick 中有两套与布局管理相关的类库,一套叫作 Item Positioner(定位器),一套叫作 Item Layout(布局)。 定位器包括 Row(行定位器)、Column(列定位器)、Grid(表格定位器)、Flow(流式定位器)。 布局管理器包括行布局(RowLayout)、 阅读全文
posted @ 2019-11-27 13:09 fengMisaka 阅读(1764) 评论(0) 推荐(1)
摘要:一、鼠标事件 MouseArea 对象可以附加到一个 item 上供 item 处理鼠标事件,它本身是一个不可见的 item 。在其内部,可以直接引用它所附着的对象的属性和方法。你可以将 MouseArea 理解为它所附着的 item 的代理。 MouseArea 有很多属性, enabled 用来 阅读全文
posted @ 2019-11-26 20:23 fengMisaka 阅读(2297) 评论(0) 推荐(0)
摘要:信号和槽作为 Qt 的核心机制,在 Qt 编程中有着广泛的应用。同样,QML 也继承了这样的特性 - 信号和信号处理程序 ,只不过叫法上略有不同。 信号:来自 QML 对象的通知。 信号处理程序:由信号触发的表达式(或函数),也被称为 Qt C++ 中的 “槽”。 信号是事件,信号通过信号处理程序来 阅读全文
posted @ 2019-11-26 16:54 fengMisaka 阅读(2948) 评论(0) 推荐(1)
摘要:一、简介 Component 是由 Qt 框架或开发者封装好的、只暴露了必要接口的 QML 类型,可以重复利用的元素。一个 Component 就像一个黑盒子,它通过属性、信号、函数和外部世界交互。 QML 主要提供两种不同的方法来创建组件:一个 Component 可以定义在独立的 qml 文件中 阅读全文
posted @ 2019-11-26 15:21 fengMisaka 阅读(5424) 评论(0) 推荐(0)
摘要:元素可以被分为可视化元素与非可视化元素。一个可视化元素(例如矩形框 Rectangle)有着几何形状并且可以在屏幕上显示。一个非可视化元素(例如计时器 Timer)提供了常用的功能,通常用于操作可视化元素。 现在我们将专注于几个基础的可视化元素,例如 Item(基本项元素),Rectangle(矩形 阅读全文
posted @ 2019-11-02 14:07 fengMisaka 阅读(2125) 评论(0) 推荐(1)
摘要:一、对象(Object) 在前面对象类型处已经讲明了什么是对象,这里再重申一下。QML 对象由类型指定,一般与类型同名,名称以大写字母开头,后面跟一对大括号,在括号中包含了对象特性定义,包括 id、属性、信号、信号处理器、方法、附加属性和附加信号处理器等,当然也可以包含子对象。例如,前面代码中 Re 阅读全文
posted @ 2019-10-26 15:29 fengMisaka 阅读(3869) 评论(0) 推荐(0)
摘要:QML 是一种描述用户界面的声明式语言。它将用户界面分解成一些更小的元素,这些元素能够结合成一个组件。QML 语言描述了用户界面元素的形状和行为。用户界面能够使用 JavaScript 来提供修饰,或者增加更加复杂的逻辑。从这个角度来看它遵循 HTML-JavaScript 模式,但 QML 是被设 阅读全文
posted @ 2019-10-26 15:28 fengMisaka 阅读(2164) 评论(0) 推荐(0)
摘要:一、Date Date 对象用于处理日期和时间。你可以这样创建一个 Date 对象: var today = new Date() 当使用无参构造函数创建 Date 对象时,该对象会自动把当前日期和时间保存为其初始值。实际上 Date 对象还可以用下面的方式来创建: new Date(value) 阅读全文
posted @ 2019-09-27 21:30 fengMisaka 阅读(2134) 评论(0) 推荐(0)
摘要:如果你用过 C++ 或 Java,肯定熟悉类(class)。在 ECMAScript 中并没有 “类” 这个词, 其对应的是 “对象定义”,不过这太拗口了,因此还是诜择使用 “类” 这个词。 对象是由 new 运算符加上要实例化的类型的名字创建的。比如下面的代码创建 Array 类的实例: var 阅读全文
posted @ 2019-09-27 21:26 fengMisaka 阅读(5231) 评论(1) 推荐(0)