- 博客(35)
- 收藏
- 关注
原创 Qt之QMap基本用法
QMap<Key, T>是Qt的通用容器类之一。它存储(键、值)对,并提供与键相关联的值的快速查找。 QMap和QHash提供了非常相似的功能,他们的差异是:QHash提供了比QMap更快的查找速度。(详情请参阅算法复杂性。)在QHash上迭代时,项目的顺序是任意的。而使用QMap时,项总是按键排序。QHash的键类型必须提供operator==()和全局QHash(key)函数。QMap的键类型必须提供操作符<(),以指定全序顺序。从Qt5.8.1版本开始,使用指针类.
2021-08-27 18:22:19
3258
原创 Qt实现俄罗斯方块
在经过基础内容的学习和简单的小示例练习后,这节我们用Qt做个俄罗斯方块小游戏。 本文会描述实现俄罗斯方块的部分思路,代码开源,详细可见代码。链接获取方式开源代码已上传gitee:关注“程序媛讲QT”公众号,回复“俄罗斯方块”获取链接。俄罗斯方块实现 首先新建工程,在ui设计器中做好布局。其中在游戏主界面和提示下一个方块形状界面分别拖入控件widget,为提升为自定义类做准备。 在工程中添加两个新的类,并在ui设计器中对两个控件widget做提升,在手把手教QT—8.自.
2021-08-27 18:21:46
2910
原创 Qt之QVector基本用法
QVector类是一个提供动态数组的模板类,是Qt对所有数组的封装。 之前我们定义一个int型的数组,我们会写int array[10],现在在Qt里我们可以定义成QVector< int > array(10)。 QVector< T >是Qt的一个容器类。 它将项存储在相邻的内存位置,并提供基于索引的快速访问。 QVector可以像之前的方式用array[5]=4赋值、array[5]获取值。不同的是,QVector可以通过count()函数获知该数组中有多.
2021-08-16 17:31:36
17321
1
原创 Qt创建多个按钮控件并关联槽函数
假设有这样一个需求,在工程中需要创建多个按钮,按下按钮触发槽函数。你会怎么做?方便快捷的方法有很多,这里讲一个我常用的方法。 如果挨个创建按钮并关联槽函数会稍显麻烦,我们可以将按钮集合名称放入到QList中,再循环创建按钮并关联同一个槽函数,利用按钮的集合名称QList区分每个按钮。在槽函数中使用QObject::sender()获取信号发生者的指针(在手把手教QT—3.信号与槽(一)中已经讲过sender()用法)。 在槽函数中获取信号发生者的指针后,调用接口函数获得按钮的对象名称,可以根.
2021-08-05 11:07:48
3452
原创 QTreeWidget详解
树形结构在GUI中很常见,在Qt中,我们可以通过QTreeWidget类构造树形结构。本文对有关QTreeWidget的基本知识点进行了总结。
2021-06-29 18:06:37
7113
原创 QDockWidget详解(二)
上次在 文章中介绍了一些有关QDockWidget的基础用法,今天继续来讲QDockWidget的用法。自定义标题栏 如果不想使用QDockWidget自带的标题栏,那么可以通过void QDockWidget::setTitleBarWidget(QWidget *widget)函数来自定义标题栏。例如:在QWidget控件中加入QLabel、QPushButton等控件,并对QWidget布局,将QWidget通过该函数放入到QDockWidget的标题栏中。代码示例如下:SendTi
2021-06-17 11:16:57
2368
原创 Qt打包发布应用程序exe
Qt编译生成的exe文件运行时可能会提示缺少库文件而不能正常运行,此时需要将程序进行打包发布。本文将详细描述打包发布应用程序过程。打包发布应用程序 Qt以Release的方式编译Qt程序; 编译完成后,新建一个文件夹(我这里新建文件夹名为exe); 将build-xxxxxxxxxx-Desktop_Qt_5_9_1_MinGW_32bit-Release\release下的exe文件复制粘贴到新建的exe文件夹中; win10下,找到Qt 5.9.1 for Desktop.
2021-06-17 11:16:17
326
原创 Qwt编译
Qwt,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。 这是我之前写过的一个程序,实现将串口发来的数据转换成波形,这里就有用到Qwt控件。 用Qwt控件之前需要将其编译,本文将详细描述编译过程。我这里Qt的版本为5.9.1,Qwt的版本为qwt-6.1.6 。Qwt下载 Qwt官网下载网址为:https://sourceforge.net/projects/qwt/files/qwt/目前已经.
2021-06-17 11:15:41
614
原创 手把手教QT—9.事件
Qt的事件是整个Qt框架的核心机制之一,在Qt中所有事件类都继承于QEvent。Qt有很多种事件,比如说点下鼠标会触发鼠标事件,按下键盘会触发键盘事件,关闭窗口会触发关闭事件,我们之前学过的信号,其实也是事件的一种。我们可 以在帮助手册中的QWidget的Protected Functions和Events下查看有哪些事件函数。 回顾之前学过的main()函数,最后总是有一条语句return a.exec()。这个exec()就是在监听应用程序的事件,当它监测到事件,转换成相应的对象,此时在事件
2021-06-17 11:14:56
326
原创 手把手教QT—8.自定义控件
在使用Qt的ui设计时,Qt为我们提供了标准的窗口控件,但是在很多复杂工程中,标准窗口控件并不能满足所有的需求,这时就需要我们自定义控件。我们自定义的类既可以作为独立的窗口显示,又可以作为一个控件显示。 这节我们要实现如下这个页面。点击按键,滑动条开始滑动。按键和滑动条都可以通过在ui设计时拖动控件实现,但本节并不通过这种方式来实现,我们拖动一个容器到窗口中,把这个容器模块作为一个独立的类,用代码实现按键与滑动条。工程新建 新建工程,在ui设计器中拖入几个控件; 回到工程目录,在工程上.
2021-06-02 20:02:53
341
原创 手把手教QT—7.添加资源文件
Qt资源系统是一个跨平台的资源机制,资源文件的后缀是qrc,它将程序运行时所需要的资源以二进制的形式存储于可执行文件中。
2021-06-01 14:38:42
301
原创 手把手教QT—5.qt设计器、常用控件及帮助文档使用(二)入门必看!
本节来讲如何用代码调用ui中定义的控件,以及帮助文档的使用。窗口设计 可用上节工程,或者新建工程,这里就不赘述了。在ui设计中,将QTabWidget控件拖拽到到设计区中,在QTabWidget的第一页放入按钮、行编辑器、标签,QTabWidget的第二页放入数码管。更改对象名称,设置属性(这里可以自由发挥啦~)。代码讲解 我们这节要实现的是:在行编辑器中输入数字,点击确定按钮,数码管显示数字。那么我们现在就要给按钮写一个槽函数,连接它的信号。在ui中就不需要像之前学习的那样,需要自己写
2021-05-31 10:09:55
743
原创 手把手教QT—5.qt设计器与常用控件(一)
新建工程与基类介绍 首先还是新建工程: 在基类下可见有QMainWindow、QWidget和QDialog三种选择。QMainWindow主要在PC端使用,它是带有菜单栏的;QDialog是对话框;QWidget是Qt内图形界面所有控件的基类,这里还是选择QWidget。 这次点击创捷界面的单选按钮,并按照提示完成新建工程。自动生成的工程中在Forms下多了ui文件。后缀为“.ui”的文件是可视化设计窗体的定义文件,双击项目文件目录树的ui文件,打开集成在Qt Creator中的Qt Des
2021-05-31 10:07:29
877
原创 Qt编写重绘事件+可拖动对象(代码开源)
本工程实现根据用户填入的设备个数自动生成设备图标,设备图标为可拖动对象。本工程设计思路为:通过QLabel显示背景图片,在QLabel中自定义重绘事件,并用eventFilter()监视响应事件,实现鼠标拖动对象。代码链接:开源代码已上传gitee,关注“程序媛讲QT”公众号,回复“Air monitoring design”获取链接。实现概要:通过QLabel实现背景图片显示。ui->pic_label->setStyleSheet("border-image:url(:/n
2021-05-31 10:06:10
478
原创 Qt安装包
Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序。Qt安装包关注"程序媛讲QT"微信公众号,回复"Qt安装包"获取,这里版本为5.9.1 。也可以在官网下~,网址:https://www.qt.io...
2021-05-27 07:41:02
447
原创 Qt之QPainter绘制时钟
本示例将用QPainter绘画钟表,并用定时器的方式让钟表跑起来。本文还会讲解QPainter帮助文档的使用,通过查询帮助文档来绘制窗口部件。
2021-05-13 10:09:09
631
1
原创 PDM信号与PCM信号
总结一下PDM信号与PCM信号:PDMPDM:脉冲密度调制,模拟信号的幅值使用输出脉冲对应区域的密度表示。PWM波是PDM波转换频率固定的一种特例,在实际输出的一位数据流中,只存在“1”和“0”,1的密度越大,代表该区域对应的模拟信号幅值越大,反之,0的密度越大,代表该区域的模拟信号幅值越小。1和0连续转换的区域对应中间幅值。使用低通滤波器将PDM信号滤波后,可以恢复连续的模拟信号波形。已知signal array,求output PDM array。// x[s]: signal array/
2021-04-09 10:17:29
13218
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人