![](https://img-blog.csdnimg.cn/20210317115007920.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
qt
文章平均质量分 80
知识回顾
伴君
这个作者很懒,什么都没留下…
展开
-
Qt里的信号与槽原理
信号和槽(Signal & Slot)用于两个对象(object)进行交流,通俗地来说,就是一个对象发出什么信号,另一个对象执行相应的动作(比如跑步比赛中,裁判员发出枪响信号,运动员开始起跑)。信号(Signal):相当于发出一个事件通知。槽(Slot):槽其实是一个函数,为了响应信号而执行的一系列的指令。连接(connect):这个连接的过程,就是,我们指定什么样的信号执行什么样的槽函数。Qt里只有从QOBject派生来的类,才支持信号与槽。主要分为两类:1、Qt类自带的;2、用户自定义的。原创 2023-05-09 17:01:02 · 1854 阅读 · 1 评论 -
QJsonObject 类
QJsonObject可以转换为QVariantMap,也可以从QVariantMap转换。您可以从中查询具有size()、insert()和remove()项的(key,value)对的数量,并使用标准C++迭代器模式对其内容进行迭代。QJsonObject是一个隐式共享类,只要不修改数据,它就与创建数据的文档共享数据。JSON对象是键值对的列表,其中键是唯一的字符串,值由QJsonValue表示。QJsonObject类封装了一个JSON对象。原创 2023-05-07 00:00:29 · 1444 阅读 · 0 评论 -
Qt在槽函数中执行耗时操作导致界面卡住
在Qt实战中,本来想将自己所用的算法写在对应的槽函数里,通过点击相关按钮触发信号,从而达到理想的效果。然而,函数的执行都是需要耗费一定的时间,耗时太长则会阻塞线程,在界面开发中,阻塞主线程时将会卡住,无法点击,例如在菜单栏中点击Structure From Motion来实现SFM功能,此时界面必然会卡住,直到Structure From Motion里的功能实现完毕。对于此类问题,可以使用创建线程的方式来解决,比如QThread,如果在Windows可以使用Createthread,std::thread原创 2022-04-28 12:38:40 · 3957 阅读 · 0 评论 -
Qt实战(四)——图片浏览器
图片浏览器逻辑 实现图片浏览器用到了前面几乎所有的知识,包括窗口部件、事件、对象模型与容器类、图形视图、模型/视图编程以及多线程等。大致流程为:首先定义一个图片类,该类包含图片的路径、文件名、文件id以及获取这些变量的函数。然后定义了一个图片数组类,主要包含添加图像以及获取所有图像以及新加入图像的函数。最后通过将图片名字加入到界面左侧QDockWidget部件中的QTreeView中,通过线程将图片的预览加入界面下侧的窗口部件中。最后通过双击可查看完整图片,以及通过滚轮和鼠标等事件来对图片进行一些操作。原创 2021-11-23 10:36:35 · 4874 阅读 · 44 评论 -
Qt知识回顾(十六)——进程和线程
进程 设计应用程序时,有时不希望将一个不太相关的功能集成到程序中,或者是因为该功能与当前设计的应用程序联系不大,或者是因运行一个进程 Qt的QProcess类用来启动一个外部程序并与其进行通信。要启动一个进程,可以使用start()函数,然后将程序名称和运行这个程序所要使用的命令行参数作为该函数的参数。执行完start()函数后,QProcess进入Starting状态,当程序已经运行后,QProcess就会进入Running状态并发射started()信号,当进程退出后,QProcess重新进入原创 2021-11-22 14:58:23 · 1944 阅读 · 0 评论 -
Qt知识回顾(十五)——模型/视图编程
应用程序中往往要存储大量的数据,并对他们进行处理,然后可以通过各种形式显示给用户,用户需要时还可以对数据进行编辑。Qt中的模型/视图架构就是用来实现大量数据的存储、处理及其显示的。模 型 / 视 图 框 架 MVC(Model-View-Controller)是一种起源于Smalltalk的设计模式,经常用于创建用户界面。MVC包含了3个组件,模型(Model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;控制(controller),定义了用户界面对用户输入的反应方式原创 2021-11-17 10:11:03 · 1097 阅读 · 0 评论 -
Qt实战(三)——音乐播放器
音乐播放器逻辑 首先通过打开文件,获取文件夹下mp3文件的名字,将其存入QTableWidget控件下,通过双击QTableWidget空间中的内容,播放相应的mp3音乐文件,同时通过使用QMediaPlaylist来实现上一首,下一首的功能。效果图具体实现widget.h#ifndef WIDGET_H#define WIDGET_H#include <QWidget>class QMediaPlayer;class QMediaPlaylist;class QLa原创 2021-11-16 10:36:35 · 2459 阅读 · 0 评论 -
Qt知识回顾(十四)——文件、目录和输出/输出
文件和目录输入/输出设备 QIODevice类是Qt中所有I/O设备的基础接口类,为诸如QFile、QBuffer和QTcpSocket等支持读/写数据块的设备提供了一个抽象接口。QIODevice类是抽象的,无法被实例化,一般是使用它所定义的接口来提供设备无关的I/O功能。 访问一个设备以前,需要使用open()函数打开该设备,而且必须指定正确的打开模式。QIODevice中所有的打开模式由QIODevice::OpenMode枚举类型定义,其取值如下表,其中的一些值可以使用按位或符号"|"来同原创 2021-11-07 16:35:44 · 1902 阅读 · 0 评论 -
Qt知识回顾(十二)——音视频播放
播放音频播放视频QMediaPlayer原创 2021-11-03 18:19:21 · 3563 阅读 · 0 评论 -
Qt类总结(三)QGraphicsItem
QGraphicsItem简介Header: #include < QGraphicsItem >qmake: QT += widgetsInherited By: QAbstractGraphicsShapeItem, QGraphicsItemGroup, QGraphicsLineItem, QGraphicsObject, and QGraphicsPixmapItem; 公共类型//此枚举描述QGraphicsItem的缓存模式。缓存通过分配和渲染到屏幕外像素缓冲区来加速渲.原创 2021-11-03 10:47:45 · 6969 阅读 · 0 评论 -
Qt类总结(二)QObject
1.QObject简介Header: #include < QObject >qmake: QT += coreInherited By: QAbstractAnimation, QAbstractEventDispatcher, QAbstractItemModel, QAbstractState, QAbstractTransition, QCoreApplication, QEventLoop, QFileSelector, QFileSystemWatcher, QIODevice原创 2021-10-10 13:26:08 · 1278 阅读 · 0 评论 -
Qt知识回顾(十一)——3D绘图
使用OpenGL绘制图像介绍# 绘制多边形绘制彩色3D图形使用纹理贴图原创 2021-11-02 16:07:01 · 3109 阅读 · 0 评论 -
Qt实战(二)——方块游戏
方块游戏架构 在这个游戏中,有一个区域用来摆放方块,该区域宽为10,高为20,以小正方形为单位,它可以看作是拥有20行10列的一个网格。标准的游戏中一共有7种方块,它们都是由4个小正方形组成的规则图形,依据形状分别用字母I、J、L、O、S、T和Z来命名。 这里使用图形视图框架来实现整个游戏的设计。小正方形由OneBox来表示,它继承自QGraphicsObject类,之所以继承自这个类,是因为这样就可以使用信号和槽机制,话可以使用属性动画。小正方形就是一个宽和高都为20像素的正方形图形项。游戏中的方原创 2021-11-01 21:03:50 · 2784 阅读 · 0 评论 -
Qt知识回顾(十)——图形视图、动画和状态机框架
图形视图框架的结构# 图形视图框架的坐标系统和事件处理图形视图框架的其他特性动画框架状态机框架原创 2021-10-28 22:56:04 · 1620 阅读 · 0 评论 -
Qt知识回顾(九)——2D绘画
基本绘制和填充# 坐标系统# 其他绘制双缓冲绘图绘图中的其他问题原创 2021-10-25 23:56:02 · 1636 阅读 · 0 评论 -
Qt知识回顾(八)——国际化、帮助系统和Qt插件
国际化帮助系统创建Qt插件原创 2021-10-24 20:10:49 · 413 阅读 · 0 评论 -
Qt知识回顾(七)——界面外观
Qt风格Qt样式表特殊效果窗体原创 2021-10-15 19:01:28 · 583 阅读 · 0 评论 -
Qt知识回顾(六)——Qt对象模型与容器类
对象模型 标准C++对象模型可以在运行时非常有效地支持对象范式(object paradigm),但是它的静态特性在一些问题领域中不够灵活。图形用户界面编程不仅需要运行时的高效性,还需要高度的灵活性。为此,Qt在标准C++对象模型的基础上添加了一些特性,形成了自己的对象模型。这些特性有: > 一个强大的无缝对象通信机制——信号与槽(signals and slots); > 可查询、可设计的对象属性系统(object properties); > 强大的事件和事件过滤器(e原创 2021-10-14 19:34:21 · 1241 阅读 · 0 评论 -
Qt知识回顾(五)——事件系统
在Qt中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等,QEvent类的关系图如下:Qt中的事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的简称。Qt中使用一个对象来表示一个事件,继承自QEvent类。需要说明的是,事件与信号并不相同,比如单击一下界面上的按钮,那么就会产生鼠标事件QMouseEvent(不是按钮产生的),而因为按钮被按下了,那么它会发射clicked()单原创 2021-10-07 16:55:38 · 389 阅读 · 0 评论 -
Qt类总结(一)QTextEdit
1.QTextEdit简介 Header:#include < QTextEdit > qmake: QT += widgets Inherits: QAbstractScrollArea Inherited By: QTextBrowserQTextEdit属性acceptRichText : bool 此属性保存文本编辑是否接受用户的富文本插入。当此属性设置为false text时,编辑将只接受用户的纯文本输入。例如,通过剪贴板或拖放。此属性的默认值为true。au原创 2021-10-06 15:52:31 · 15441 阅读 · 1 评论 -
Qt实战(一)——多文本编辑器
在学习前面一些知识之后,开始进行第一个Qt实战任务,即完成一个多文档编辑器。首先先来看实验成果图,大概就是这么个多文档编辑器。首先需要在设计模式里进行设计器的设置:然后就是新建类MdiChild的声明和实现mdichild.h#ifndef MDICHILD_H#define MDICHILD_H#include<QTextEdit>class MdiChild:public QTextEdit{ Q_OBJECTpublic: explicit M原创 2021-10-05 18:14:52 · 1845 阅读 · 3 评论 -
Qt知识回顾(四)——应用程序主窗口
Qt中提供了以QMainWindow类为核心的主窗口框架,它包含了众多相关的类,它们的继承关系如下:主窗口框架 主窗口为建立应用程序用户界面提供了一个框架,Qt提供了QMainWindow和其他一些相关的类共同完成主窗口的管理。QMainWindow类拥有自己的布局,包含以下组件: ①菜单栏(QMenuBar):包含一个下拉菜单项的列表,这些菜单项由QAction动作类。菜单栏位于主窗口的顶部,一个主窗口只能有一个菜单栏。 ②工具栏(QToolBar):工具栏一般用于显示一些常用的菜单项原创 2021-10-04 18:03:58 · 1652 阅读 · 0 评论 -
Qt知识回顾(三)——布局管理
对于一个完善的软件,布局管理是必不可少的。Qt主要提供了QLayout类及其子类来作为布局管理器,它们可以实现常用的布局管理功能,QLayout及其子类的关系如下:布局管理系统 Qt的布局管理系统提供了强大的机制来自动排列窗口中的所有部件,确保它们有效地使用空间。所有QWidget的子类的实例(对象)都可以使用布局管理器管理位于他们之中的子部件,QWidget::setLayout()函数可以在一个部件上应用布局管理器。一旦一个部件上设置了布局管理器,那么它会完成以下几种任务: .原创 2021-10-03 10:27:20 · 1663 阅读 · 0 评论 -
Qt知识回顾(二)——窗口部件
信号与槽 Qt使用信号和槽机制来完成对象之间的协同操作,信号与槽都是函数,比如单击窗口上的一个按钮后想要弹出一个对话框,就可以将这个按钮的单机信号和自定义的槽关联起来,在这个槽中创建一个对话框并显示它。 槽的声明:槽一般使用slots关键字进行修饰, public slots: void showChildDialog(); 槽的定义:Qt Creator设计了一个快速添加定义的方法:单击showChildDialog()槽,同时摁下Alt+Enter键(也可以在原创 2021-09-30 17:17:54 · 2138 阅读 · 0 评论 -
Qt知识回顾(一)
Qt Creator界面组成1.菜单栏 文件、编辑、构建、调试、Analyze,工具、控件、帮助 2.模式选择器 欢迎、编辑、设计、Debug、项目、帮助(ctrl+f6) 帮助是非常必要的,包含了Qt Creator更详细的使用和设置方法,提供了”索引“、”查找“,”书签“三种方式对文档进行导航,其中Reference分类中列举了所有的C++类,QML类型、Qt模块和Qt参考模块;Getting Started分类中包含了初学者开始学习Qt的入门介绍;Overviews分类分原创 2021-09-29 19:05:25 · 492 阅读 · 0 评论