随笔分类 -  Qt

摘要:前言 QGridLayout:栅格布局,也被称作网格布局(多行多列)。 栅格布局将位于其中的窗口部件放入一个网状的栅格之中。QGridLayout 需要将提供给它的空间划分成的行和列,并把每个窗口部件插入并管理到正确的单元格。 栅格布局是这样工作的: 它计算了位于其中的空间,然后将它们合理的划分成若 阅读全文
posted @ 2019-09-27 21:24 fengMisaka 阅读(6753) 评论(0) 推荐(0)
摘要:前言 水平布局、垂直布局除了构造时的方向(LeftToRight、TopToBottom)不同外,其它均相同。下面我们以 QHBoxLayout 为例,来讲解 QBoxLayout 的基本使用。 源码 下面,我们创建 5 个按钮,然后添加至水平不居中。 从下图可以看到,除标题栏以外的区域都在 pHL 阅读全文
posted @ 2019-09-27 21:21 fengMisaka 阅读(13739) 评论(0) 推荐(0)
摘要:前言 对于一个完善的软件,布局管理是必不可少的。 无论是想要界面中部件有一个很整齐的排列,还是想要界面能适应窗口的大小变化,都要进行布局管理。Qt 提供了 QLayout 类及其子类来作为布局管理器,它们可以实现常用的布局管理功能。 水平、垂直、网格、表单布局 为窗口提供一个好布局的最佳方式是使用内 阅读全文
posted @ 2019-09-27 21:14 fengMisaka 阅读(1958) 评论(0) 推荐(0)
摘要:Qt Quick 为 Qt 引入了一门叫 QML(Qt Meta/Modeling Language)的脚本语言,它是 ECMAScript 标准的实现。所以 QML 语法是在 ECMAScript 语法的基础上实现的。 ECMAScript 语言的标准是由 Netscape、Sun、微软、Borl 阅读全文
posted @ 2019-09-26 21:19 fengMisaka 阅读(10046) 评论(0) 推荐(2)
摘要:一、模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框。启动模态对话框时,例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框,除了该对话框整个应用程序窗口都无法接受用户响应。只有关闭和退出该模态界面,才可以访问本应用程序的其他界面和功能。 显示模态对话框最常见的方法是调用其 阅读全文
posted @ 2019-09-18 23:02 fengMisaka 阅读(5928) 评论(0) 推荐(2)
摘要:一、窗口置顶 与 取消置顶 二、全屏显示 与 退出全屏 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: 但是 和 只对顶级窗口有效果,对子窗口无效。要将子窗口全屏显示可用以下方法: 将要全屏的 Qt 子窗口调用 将其类型提升为顶级窗口模式,然后调用 函数将子窗口全屏显示。 当然全屏后还要恢 阅读全文
posted @ 2019-09-17 14:42 fengMisaka 阅读(18985) 评论(0) 推荐(3)
摘要:一、成品图展示 成品图如下所示: 二、串口通讯步骤 1、在工程文件(.pro)中添加串口通信相关运行库: 2、在头文件中添加: 3、在头文件中定义全局的串口对象: 4、扫描可用串口: 5、打开串口: 6、关闭串口: 7、 发送数据给下位机: 8、读取下位机发来数据: 上述代码都进行了封装,单独构建了 阅读全文
posted @ 2019-08-22 11:48 fengMisaka 阅读(13763) 评论(1) 推荐(1)
摘要:一、前言 自从 Qt 发布以来,给广大跨平台界面研发人员带来了无数的福利。但是Qt自己却一直没有提供自带的图表库,这就使得 QWT、QCustomPlot 等第三方图表库有了巨大的生存空间,为了降低开发成本,大家都涌向了这些第三方库。这种情况一直持续到 Qt5.7 版本后 Qt Charts 的发布 阅读全文
posted @ 2019-08-20 11:15 fengMisaka 阅读(16068) 评论(0) 推荐(0)
摘要:项目中通常需要采用各种数据库(如 Qracle、SQL Server、MySQL等)来实现对数据的存储、查询等功能。下面讲解如何在 Qt 中操作 SQlite 数据库。 一、SQLite 介绍 Sqlite 数据库作为 Qt 项目开发中经常使用的一个轻量级的数据库,可以说是兼容性相对比较好的数据库之 阅读全文
posted @ 2019-08-16 15:13 fengMisaka 阅读(16328) 评论(0) 推荐(9)
摘要:一、前言 使用 Qt 制作了一个简单的图片播放器,点击 "浏览按钮" 浏览图片所在目录,目录中的所有图片缩小图标和名称会显示在左侧的图片列表中,点击列表中的图片项,可以在右侧区域的标签上显示或播放 png、img、gif 等格式图片。示意图如下所示: 二、工程代码 具体代码如下: 头文件 imgPl 阅读全文
posted @ 2019-08-13 17:39 fengMisaka 阅读(1440) 评论(0) 推荐(0)
摘要:最近使用Qt实现超时锁屏的功能(工控机触摸屏),当手长时间不触摸屏幕的时候,程序超时会显示锁屏窗口。 一、效果 主窗口超时显示锁屏窗口: 系统窗口超时显示锁屏窗口: 二、实现思路 首先开启一个线程用于QTimer定时器计时,最开始进入软件开启定时器计时,超时则显示锁屏窗口;而手触摸屏幕会触发鼠标点击 阅读全文
posted @ 2019-07-11 17:13 fengMisaka 阅读(2506) 评论(0) 推荐(0)
摘要:窗口的最小化、最大化按钮自定义 setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::WindowCloseButtonHint); // 只要关闭按钮 setWindowFlags(Qt::WindowFlags type) 全屏显 阅读全文
posted @ 2019-07-08 10:58 fengMisaka 阅读(2948) 评论(0) 推荐(1)
摘要:为了让程序尽快响应用户操作,在开发应用程序时经常会使用到线程。对于耗时操作如果不使用线程,UI界面将会长时间处于停滞状态,这种情况是用户非常不愿意看到的,我们可以用线程来解决这个问题。 大多数情况下,多线程耗时操作会与UI进行交互,比如:显示进度、加载等待。。。让用户明确知道目前的状态,并对结果有一 阅读全文
posted @ 2019-06-24 16:54 fengMisaka 阅读(2085) 评论(0) 推荐(0)
摘要:一、同步线程方法 使用线程的目的是允许代码并行运行,但是有时线程必须停止并等待其他线程。例如,如果两个线程试图同时写入相同的变量,结果是不确定的,所以需要同步线程。同步线程是一种保护共享资源等数据的常见的技术。迫使线程等待另一个的原则被称为互斥 。 Qt 中的 QMutex、QReadWriteLo 阅读全文
posted @ 2019-06-24 16:09 fengMisaka 阅读(2337) 评论(1) 推荐(0)
摘要:Qt提供了一个与平台无关的QThread类,用以对线程的支持。多线程编程也可以有效解决在不冻结一个应用程序的用户界面情况下执行一个耗时的操作问题。对应本节的内容,可以在帮助中査看Thread Support in Qt关键字。 这里准备介绍QThread常用函数和启动线程的两种方式: 子类化 使用w 阅读全文
posted @ 2019-06-24 11:51 fengMisaka 阅读(12359) 评论(0) 推荐(0)
摘要:Qt提供了一个与平台无关的QProcess类,用以对进程的支持。本节讲述了怎样在Qt应用程序中启动一个外部程序进程,以及几种常用的进程间通信方法。如果对进程和线程的概念不是很了解,可以看我的另一篇博客:[多进程和多线程的概念。 设计应用程序时,有时不希望将一个不太相关的功能集成到程序中,或者是因为该 阅读全文
posted @ 2019-06-24 09:51 fengMisaka 阅读(9701) 评论(1) 推荐(1)
摘要:一、简介 图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景传递给相应的图形项。而对于键盘事件,它会传递给获得焦点的图形项,可以使用QGraphicsScene类的setFocusItem()函数或者图形项自身调用setFocus()函数来设置焦点图形项。默认的,如果场景没有获得焦 阅读全文
posted @ 2019-06-21 14:52 fengMisaka 阅读(2325) 评论(0) 推荐(1)
摘要:一、图形视图框架的结构 在前面讲的基本绘图中,我们可以自己绘制各种图形,并且控制它们。但是,如果需要同时绘制很多个相同或不同的图形,并且要控制它们的移动、检测它们的碰撞和叠加;或者我们想让自己绘制的图形可以拖动位置、进行缩放和旋转等操作。实现这些功能,要是还使用以前的方法,那么会十分困难。解决这些问 阅读全文
posted @ 2019-06-21 14:49 fengMisaka 阅读(5757) 评论(1) 推荐(4)
摘要:一、重绘事件 前面讲到的所有绘制操作都是在重绘事件处理函数paintEvent()中完成的,是QWidget类中定义的函数。一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因中的任意一个都会发生重绘事件: repaint()函数或者update()函数被调用; 被隐藏的部件现在被重新显示; 阅读全文
posted @ 2019-06-20 16:39 fengMisaka 阅读(1544) 评论(0) 推荐(1)
摘要:一、绘制文字 除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::fontInfo()函数可以获取字体的信息,它返回QFontInfo类对象。在绘制文字时会默认使用抗锯齿。 阅读全文
posted @ 2019-06-20 16:36 fengMisaka 阅读(5146) 评论(0) 推荐(3)