Qt
Qt开发经验记录笔本
周健文
这个作者很懒,什么都没留下…
展开
-
QT子窗口和对话框关闭自动释放内存的操作方法
close[slot] bool QWidget::close()关闭Widget窗口。如果Widget窗口被关闭,则返回true;否则返回false。首先,它向Widget窗口发送一个QCloseEvent。如果Widget窗口接受关闭事件,它将被隐藏。如果忽略该事件,则什么也不会发生。QWidget::closeEvent()的默认实现接受close事件。例如定义virtual bool close(); 实现bool ParentForm::close(){ qDeb原创 2020-08-14 19:43:34 · 3695 阅读 · 0 评论 -
如何调试进入Qt源码
从Qt5.9.9版本开始就不提供pdb下载了,这个要注意。我安装的Qt5.14.2版本目录路径D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin下面并没有dll配套的pdb文件。https://download.qt.io/archive/qt/而使用msvc2017_64版本的编译器是有提供pdb文件,意味着使用该版本就可以调试debug源码了。参考链接查看和调试 Qt 源码qt debug无法调试 进入 qt源码...原创 2020-08-12 19:29:26 · 1023 阅读 · 0 评论 -
Qt事件与事件处理
文章目录1、事件系统2、事件传递3、事件类型4、事件处理5、事件过滤器6、参考1、事件系统在Qt中,事件是从抽象类QEvent派生的类的实例,它们表示在应用程序中发生的事情或者应用程序需要了解的外部活动的结果。 事件可以由QObject子类的任何实例接收和处理,但它们与Widget相关。比如说,点击鼠标时,会触发QMouseEvent;敲击键盘时,会触发QKeyEvent;窗口大小发生变化时,会触发QResizeEvent。2、事件传递当事件发生时,Qt通过构造适当的QEvent子类的实例来创建一个转载 2020-08-12 13:49:23 · 246 阅读 · 0 评论 -
Qt信号槽机制详解
一、简介 在GUI编程中,当我们改变一个控件(比如Widget)时,通常把改变通知到UI中的另一个控件。更一般地,希望任何类型的对象能够彼此通信。 例如,如果用户单击“关闭”按钮,我们可能希望调用窗口的close()函数。信号槽机制是用来在两个对象(两个实例)之间通信。信号槽机制是Qt的核心特性之一,也是Qt和其他框架的差别。 其他框架使用回调实现这种通信。 回调是指向函数的指针,因此如果您希望处理函数通知您某些事件,则将指针传递给处理函数的另一个函数(回调)。 然后,处理函数在适当时调用回调。 虽转载 2020-08-12 13:34:27 · 3064 阅读 · 1 评论 -
Qt:exec,accept和accepted的概念
本篇,会重点讲述模式对话框,以及exec()的用法,accept()和accepted的概念。一.非模式对话框非模式对话框是和同一个程序中其它窗口操作无关的对话框。在字处理软件中查找和替换对话框通常是非模式的来允许同时与应用程序主窗口和对话框进行交互。调用show()来显示非模式对话框。show()立即返回,这样调用代码中的控制流将会继续。在实践中你将会经常调用show()并且在调用show()的函数最后,控制返回主事件循环。上述是我从其他网站上摘抄的,我感觉写的很好。非模式对话框,说白了,就像你打转载 2020-08-11 20:22:58 · 1404 阅读 · 0 评论 -
跨平台睡眠函数
实现#include <chrono>#include <thread>#define msleep(msec) std::this_thread::sleep_for(std::chrono::milliseconds(msec))引用文档:https://en.cppreference.com/w/cpp/thread/sleep_for更多介绍Windows与Linux系统间睡眠函数的实现推文:《跨平台sleep,msleep,usleep兼容性问题》介绍Q原创 2020-08-11 17:23:21 · 218 阅读 · 0 评论 -
QT压缩和解压ZIP学习笔记二:编译quazip32位和64位dll
一、前言QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。QuaZIP下载:https://github.com/stachenov/quazipZLIB编译方法:https://blog.csdn.net/yxy244/article/details/105024989编译小知识:QT编译要注意编译器MinGW和MSVC链接上有点不同:在MSVC转载 2020-08-11 17:02:20 · 656 阅读 · 0 评论 -
QT压缩和解压ZIP学习笔记一:编译zlib库32位和64位DLL
编译环境:VS2017一、官网下载zlib库http://www.zlib.net/解压到一个好找的位置,这里是直接放D盘。二、命令行编译32位dll1.最常见的方式,开始菜单找到VS命令提示符工具,输入cd 复制粘贴zlib库的路径(你下载解压的zlib文件路径),回车切换到zlib目录下2.输入nmake -f win32/Makefile.msc 回车开始编译3.简单两步,在zlib目录下就生成了静态库和动态库了,生成的是x86版本。三、命令行编译64位dll1.编译3转载 2020-08-11 16:51:12 · 686 阅读 · 0 评论 -
QT5.14.2 + Cmake3.18 + OPENCV3.4.3 + Opencv_contrib3.4.3
Windows平台下使用Cmake编译Opencv 3.4.3 源码1、安装QT5.15.2,我已经安装好了,就不介绍了。mingw730_64的版本D:\Qt\Qt5.14.2\Tools\mingw730_64\binmingw32-make --versionGNU Make 4.2.1Built for x86_64-w64-mingw32Copyright (C) 1988-2016 Free Software Foundation, Inc.License GPLv3+: GNU原创 2020-08-10 17:07:58 · 2190 阅读 · 4 评论 -
qt5.14.2 该文件包含不能在当前代码页(936)中表示的字符
warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。忽略警告,但是问题还在(1)找出警告的文件,然后在该文件的开始处加入下面的语句:#pragma warning (disable:4819)(2)如果是 VS IDE,还可以:在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Spe原创 2020-08-08 19:02:34 · 9813 阅读 · 0 评论