飞翔的鲲
一名音视频领域coder,喜欢深入钻研各种新技术(编解码、图像处理、算法优化等),擅长Matlab,Python,C编程。
CSDN明星博主,认证博客专家,视频、Matlab领域优质创作者。目前专注于音视频编解码和AI技术领域,开源分享,不忘初心,追求卓越!
欢迎订阅我的付费专栏,每篇都是博主的多年工作经验总结和呕心之作,任何问题都可以私信博主,必给您答疑解惑!希望我的博文可以帮助到你~
展开
-
Qt学习之一:Qt入门
首先引入Qt中的两个重要概念:1、信号和槽 Qt的窗口部件通过发射信号来表明一个用户动作已经发生了或者是一个状态已经改变了。例如,当用户单击QPushButton时,该按钮就会发射一个clicked()信号。信号可以与函数(即槽,slot)相连接,以便在发射信号时,槽可以得到自动执行。 信号槽机制实际上是设计模式中的观察者模式。当信号发出是,被连接的槽会自动被回调。这就类似观察者模式:当发生了感原创 2016-09-04 14:15:40 · 541 阅读 · 0 评论 -
Qt学习之二:创建对话框
1、深入介绍信号和槽: 2、内置窗口部件类和对话框类原创 2016-09-04 14:17:48 · 668 阅读 · 0 评论 -
Qt学习之三:创建主窗口
一个完整的应用程序界面包括菜单、工具栏、状态栏等对话框。 应用程序的主窗口提供了构建应用程序用户界面的框架。 在大多数GUI应用程序的后台,都有一套提供底层代码功能的代码——例如,用于读写文件或者用于处理用户界面中的数据的代码。在Qt中可以通过子类化QMainWindow创建一个应用程序的主窗口。原创 2016-09-04 14:28:46 · 882 阅读 · 0 评论 -
Qt学习之四:使用Qt+OpenCV创建GUI应用
1、Qt项目文件(.pro) 描述一个Qt项目,当处于编译状态时,这个文件将会被软件工具qmake调用。文件中的每个变量和一系列的值相联系。qmake可以识别的变量有:* TEMPLATE:定义项目的类型(应用程序app、库 等)* CONFIG: 指定编译器的不同选项。* HEADERS: 列出项目的头文件。* SOURCES: 列出项目的源文件(.cpp)* QT: 声明所需的Qt扩展原创 2016-09-04 22:04:16 · 1097 阅读 · 0 评论 -
Qt学习之五: 添加动作与资源文件
一、添加动作 在主窗口的基础上,添加菜单和工具栏等动作。Qt使用QAction类作为动作。 QAction 包含了图标、菜单文字、快捷键、状态栏文字、浮动帮助等信息。Tips:(1) QObject::tr()函数:被它处理的字符串可以使用工具提取出来翻译成其他语言,被用于国际化使用。(2) 字符串中的快捷键的设置的含义:”&Open”(3) sizeHint()函数:得到Qt为widge原创 2016-09-05 21:49:07 · 981 阅读 · 0 评论 -
Qt学习之六: Qt的对象模型
标准 C++ 对象模型在运行时效率方面卓有成效,但是在某些特定问题域下的静态特性就显得捉襟见肘。 GUI 界面需要同时具有运行时的效率以及更高级别的灵活性。为了解决这一问题,Qt “扩展”了标准 C++。所谓“扩展”,实际是在使用标准 C++ 编译器编译 Qt 源程序之前, Qt先使用一个叫做 moc( Meta Object Compiler,元对象编译器)的工具,先对 Qt 源代码进行一次预处原创 2016-09-06 09:50:04 · 682 阅读 · 0 评论 -
Qt学习之七:布局管理器
所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里, 以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。 Qt 提供了两种组件定位机制:绝对定位和布局定位。顾名思义,绝对定位就是一种最原始的定位方法:给出这个组件的坐标和长宽值。这样, Qt 就知道该把组件放在哪原创 2016-09-06 09:57:39 · 797 阅读 · 0 评论 -
Qt学习之八:菜单栏、工具栏和状态栏
Qt将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类表示。QAction可以添加到菜单栏、工具栏和状态栏中。 (1) 菜单栏: 使用menuBar函数创建一个菜单栏,menuBar()是QMainWindow提供的函数,这个函数会返回窗口的菜单栏。使用addMenu()函数为其添加菜单。当创建出来菜单对象时,就可以把QAction添加到这个菜单上面,也就是addAction的作原创 2016-09-06 13:39:03 · 1544 阅读 · 0 评论 -
Qt学习之九:深入对话框
对话框通常是一个顶层窗口,出现在程序的最上层,用于实现短期任务或者简洁的用户交互。Qt中使用QDialog类来实现对话框。 就像主窗口一样,我们通常会设计一个类继承 QDialog。QDialog(及其子类,以及所有 Qt::Dialog 类型的类)的对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出原创 2016-09-06 19:53:09 · 581 阅读 · 0 评论 -
Qt学习之十:标准对话框之QMessageBox
所谓标准对话框,是Qt内置的一系列对话框,用于简化开发。 事实上,有很多对话框都是通 用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同,因此没有必 要在每一个程序中都自己实现这么一个对话框。Qt 的内置对话框大致分为以下几类:* QColorDialog:选择颜色;* QFileDialog:选择文件或者目录;* QFontDialog:选择字体;* QIn原创 2016-09-06 21:37:20 · 1069 阅读 · 0 评论 -
Qt学习之十一:深入Qt5信号槽新语法
Qt5引入了信号槽的新语法:使用函数指针能够获得编译期的类型检查。若信号函数有重载的话,需要使用函数指针指明到底是调用哪一个信号。Qt 允许信号和槽的参数数目不一致:槽函数的参数数目要比信号的参数少。这是因为,我们信号的参数实际是作为一种返回值。正如普通的函数调用一样,我们可以选择忽略函数返回值,是不能使用一个并不存在的返回值。如果槽函数的参数数目比信号的多,在槽函数中就使用到这些参数的时候,实际这原创 2016-09-09 16:58:19 · 656 阅读 · 0 评论 -
Qt学习之十二:标准对话框之二QFileDialog文件对话框
实例 :编写一个简单的文本编辑器。1、首先创建一个具有文本编辑功能的主窗口。代码如下:MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); openAction = new QAction(QIcon(":/images原创 2016-09-09 18:59:47 · 920 阅读 · 0 评论 -
Qt学习之十三:事件
事件驱动: 所谓的“事件驱动”,我们的程序的执行顺序不再是线性的,而是由一个个事件驱动着程序继续执行。没有事件,程序将阻塞在那里,不执行任何代码。如果我们使用组件,我们关心的是信号槽;如果我们自定义组件, 我们关心的是事件。实例:鼠标点击class EventLabel:public QLabel{protected: void mouseMoveEvent(QMouseEvent *event原创 2016-09-10 20:25:04 · 433 阅读 · 0 评论 -
Qt学习之十四:event() 与eventFilter()
一、event() 事件对象创建完毕后, Qt 将这个事件对象传递给QObject 的 event() 函数。 event() 函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的事件处理器( event handler)。 event() 函数主要用于事件的分发。 所以,如果你希望在事件分发之前做一些操作,就可以重写这个 event() 函数了。例如,我们希望在一个 QW原创 2016-09-11 08:15:29 · 3580 阅读 · 0 评论 -
Qt学习之十五:事件总结
Qt中的事件是整个 Qt 框架的核心机制之一,也比较复杂。说它复杂,更多是因为它涉及到的函数众多,而处理方法也很多,有时候让人难以选择。现在我们简单总结一下 Qt 中的事件机制。Qt 中有很多种事件:鼠标事件、键盘事件、大小改变的事件、位置移动的事件等等。如何处理这些事件,实际有两种选择: 1. 所有事件对应一个事件处理函数, 在这个事件处理函数中用一个很大的分支语句进行选择,其代表作就是 win原创 2016-09-11 09:14:43 · 490 阅读 · 0 评论 -
Qt学习之十六:Qt绘制系统简介
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制。整个绘图系统基于QPainter, QPainterDevice 和 QPaintEngine 三个类。 QPainter 用来执行绘制的操作; QPaintDevice 是一个二维空间的抽象,这个二维空间允许QPainter 在其上面进行绘制,也就是 QPainter 工作的空间; QPaintEngine 提供了画笔( Q原创 2016-09-15 20:58:05 · 527 阅读 · 0 评论 -
Qt学习之十七:文件I/O
Qt 通过 QIODevice 提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O设备的类图: * QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口;* QFlie:访问本地文件或者嵌入资源;* QTemporaryFile:创建和访问本地文件系统的临时文件;* QBuffer:读写 QByteArray;* QPro原创 2016-09-15 21:08:01 · 643 阅读 · 0 评论 -
【python/qt】Python+Qt实现简单的视频监控界面
DATE: 2018.12.91、前言这个界面是之前读研时候学习QT时写的一个简单的界面,主要实现了人脸检测部分的功能,比较简单。从今年3月份就开始写这个视频监控的功能,一直拖到了11月份。找工作结束后,可以好好研究一下Python和Qt以及两者的混合编程了。不过,在实现视频监控界面的过程中,甚是纠结,看来混合编程是不好弄的。2、简单的视频监控界面实现平台:Python + Qt初...原创 2018-12-09 20:22:35 · 6993 阅读 · 0 评论 -
【Qt系列】之Qt之打包发布
DATE: 2019-1-31发布方式Qt发布的时候,通常使用两种方式:(1)静态编译(2)动态编译静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权问题(详情请查看Qt LGPL授权),动...转载 2019-02-05 21:20:27 · 266 阅读 · 0 评论