![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt之美
文章平均质量分 68
kevin_org
业精于勤而荒于嬉,行成于思而毁于随。——韩愈
展开
-
Qt之信号槽机制
信号槽机制所谓信号槽,实际上跟观察者模式(公众号的发布-订阅)比较类似。信号槽的实现是借助“元对象编译器”Moc。这个工具被集成到Qt的编译工具链qmake中,再开始编译QT时,会先去执行moc将信号、槽及宏定义进行编译生成一个moc_xx.cpp文件,之后就是C++常规的编译链接了。简单的理解为C++要对QT的语言进行编译,就要利用元对象编译器将其翻译为C++认识的语言。moc的本质是反射,java中有,C++是没有的,简单的来说就是在程序运行时,获取对象的构造函数、成员函数以及成员变量。并原创 2021-11-11 18:04:02 · 589 阅读 · 0 评论 -
Qt之事件机制
事件机制(也称消息机制)事件循环,也成为消息循环;QT中事件循环涉及到了类的话是QEVENTLOOP流程:启动事件循环>获取事件>分发事件>处理时间QApplication>获取事件>eventfilter>event>启动事件循环并阻塞:QApplication::exec()发送事件:sendevent()和postevent()前者发出的事件会立即被执行,也就是同步执行;后者发出的事件会先加入事件队列中,在下一轮事件循环时才处理,也就是异步执行原创 2021-11-11 16:08:06 · 2919 阅读 · 0 评论 -
Qt之预编译宏用法
Qt之预编译宏用法传统包含头文件的方式1)直接包含头文件形式;2)类前申明方式;预编译宏的形式主要看下预编译宏方式的用法:例如,//test.hQT_BEGIN_NAMESPACEclass QPushButton;class QLineEdit;QT_END_NAMESPACE;//chartsQT_CHARTS_START_NAMESPACEclass QChartView;class QChart;QT_CHARTS_END_NAMESPACE//test.cpp原创 2021-11-09 17:07:07 · 1527 阅读 · 0 评论 -
在Qt中使用SQLite数据库
前言SQLite是一种无需服务器、无需进行任何配置的数据库,所有的数据表、索引等数据库元素全部存储在一个文件中,在应用程序中使用SQLite数据库就完全当做一个文件来使用。SQLite可以跨平台使用,在不同的平台上可以随意复制数据库。一、SQLite用法1、引入SQL模块QT += sql2、添加头文件#include <QtSql>#include <QSqlD...原创 2020-08-11 09:54:35 · 485 阅读 · 0 评论 -
Qt调试弹出The CDB process terminated
Qt调试弹出The CDB process terminated解决办法将Qt MinGw环境下的项目移植到msvc下,程序运行时报的错,遇到这种问题,可以从以下两方面入手:一种是查下是否引用了第三方库文件,若有引用,可去项目配置中添加lib和include相关文件(第三方库文件可在pro文件中添加,也可在系统环境变量中添加);另一种是直接双击生成的exe文件,会提示该项目缺少哪些dll文件,须一一添加,直到运行通过为止。...原创 2020-08-11 09:46:51 · 2532 阅读 · 0 评论 -
Qt 生成dump文件
1.生成dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。当我们的程序发布出去之后 , 在上位机上是无法跟踪自己代码的 BUG 的 ,, 所以 Dump 文件对于我们来说特别有用,最快的解决方式是生成dump文件,通过生成dump文件使用调试工具进行调试,还原程序崩溃时的状态,能够起到快速定位排查问题的作用 。//生成dump代码#inclu原创 2020-08-11 09:31:08 · 1466 阅读 · 2 评论 -
Qt 部分翻译不起作用
检查对应类中是否有Q_OBJECT宏定义。原创 2020-06-06 00:21:33 · 1386 阅读 · 0 评论 -
Qt使用UAC权限
转载:沙漠飞鱼在做Qt应用程序时,有时会需要程序以管理员身份运行,Qt下的开发方法如下。一、mingw编译器环境1、添加uac.manifest文件,文件内容如下:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1...转载 2020-03-11 09:46:30 · 927 阅读 · 0 评论 -
Qt之XML解析与常见操作
Qt之XML解析与常见操作(通过DOM方式读写)原创 2020-03-05 11:25:47 · 639 阅读 · 0 评论 -
Qt之界面换肤的两种方式
概述像现在市面上有很多软甲都有换肤功能,例如:QQ、360、迅雷等。换肤其实很简单,并没有想象中那么难,下面介绍两种实现换肤的方式,仅供参考!方式一1. 实现原理 创建多个QSS文件 每一个QSS文件编写对应控件的样式 界面换肤时,进行切换方式二1. 实现原理 创建一个QSS文件首先,创建一个后缀名为QSS文件,例如style.qss,将其加载到资源文件中(qrc)。...原创 2020-03-05 09:50:44 · 3538 阅读 · 0 评论 -
Qt之通过点击位置获取QTableWidget的行列信息
通过点击位置获取QTableWidget的行列信息直接上代码//通过勾选表格中的复选框,设置当前行高亮QCheckBox* checkitem = qobject_cast<QCheckBox*> (sender());if(checkitem&& checkitem->isChecked()){ QModelIndex index = ui-&g...原创 2020-02-20 10:23:37 · 4693 阅读 · 0 评论 -
Qt之QTableWidget表中插入复选框
QTableWidget表中插入复选框下面给出两种方式1. 直接通过QTableWidgetItem来设置复选框类型QTableWidgetItem *item = new QTableWidgetItem(QString(""));ui->tableWidget->item(row, col)->setCheckState ( Qt::Unchecked);2....原创 2020-02-20 09:41:17 · 5607 阅读 · 0 评论 -
Qt之动态属性unpolish()和polish()
Qt的动态属性unpolish()和polish()1. Qt中的属性属性是指窗口或控件的属性,比如opacity属性表示“透明度”,geometry指的是“位置和大小”,pos属性代表“位置”。qt中的控件有自带的属性,我们也可以自己定义属性。QObject这个类有一个函数setProperty,我们可以通过这个函数定义自己的属性,使用方法很简单,setProperty(constcha...转载 2020-02-16 19:59:01 · 8140 阅读 · 0 评论 -
Qt 之 信号槽机制及优缺点
1. Qt 信号槽机制概念:信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被...原创 2019-01-09 15:22:15 · 16232 阅读 · 2 评论 -
Qt 之 消息机制深入分析
Qt 消息机制深入分析谈到Qt的消息机制,首先来了解下windows的消息机制1、windows消息机制注册窗口类,指定窗口函数(可注册多个窗口);进入消息循环体;获取消息PeekMessage();从应用程序序列中转换消息(TanslateMessage())并派发消息(DisatchMessage());最后窗口函数负责处理相应的消息。2、Qt消息机制注册窗口类,并创...原创 2019-03-11 12:38:24 · 726 阅读 · 0 评论 -
Qt 之 多线程-继承QThread和继承QObject两种方法的区别
转自:https://blog.csdn.net/an505479313/article/details/50351745QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来。无怪乎Qt的开发人员 Bradley T. Hughes 声嘶力竭地喊you are...转载 2019-03-20 10:26:50 · 3075 阅读 · 0 评论 -
Qt 之 替代QThread多线程的其他方式
转自:http://blog.csdn.net/chinabinlang/article/details/35988801使用线程基本上有种使用线程的场合:通过利用处理器的多个核使处理速度更快;为保持GUI线程或其他高实时性线程的响应,将耗时的操作或阻塞的调用移到其他线程何时使用其他技术替代线程开发人员使用线程时需要非常小心。启动线程是很容易的,但确保所有共享数据保持一致很难。遇到...转载 2019-03-20 10:54:44 · 907 阅读 · 0 评论 -
Qt 之 自定义事件
转自:https://blog.csdn.net/douzhq/article/details/802096011、自定义事件步骤有时为了开发需要,我们希望自定义事件来完成某种目的。实现自定义事件的步骤如下:继承QEvent定义事件类型(取值在QEvent::User和QEvent::MaxUser之间,建议使用registerEventType()函数自动创建一个全局唯一一个的事件类型...转载 2019-03-20 11:17:02 · 349 阅读 · 0 评论 -
Qt 之 自定义控件或插件
在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等。虽然Qt Designer里的控件可以满足我们大部分的需求,但是有时候,也会产生一些特殊的需要,比如一个输入框,我们要输入的是经纬度,此时就会有两种输入方式,一种是小数形...转载 2019-03-20 13:48:27 · 1194 阅读 · 1 评论 -
Qt 之 自定义插件或控件无法识别显示
自定义的控件或插件,在加载时失败,导致自定义控件不显示。然而,在Qt Designer中可以单独加载出来。如何查看自定义控件是否加载出来?进入Designer标签,tools -> Form Editor -> About QT Designer Plugin里是搜索到的控件,错误的控件有提示,比如Debug和Release选的不对。dll 找不到指定的模块,这个是说dll文件...原创 2019-03-20 15:02:42 · 3675 阅读 · 0 评论 -
QUdpSocket实现UDP通信
UDP(User Datagram Protocol, 用户数据报协议) 是轻量的、不可靠的、面向数据报、无连接的协议,它可以用于对可靠性要求不高的场所。UDP发送和接收数据都不需要建立连接,只需要绑定IP地址和端口号就可以了。发送数据直接发送,接收数据需要循环判断数据是否接受完毕。Qt的信号槽机制很好的实现了收到数据发送信号触发处理函数。QUdpSocket类用于UDP通信,它是从QAbstr...转载 2019-03-17 13:00:32 · 14718 阅读 · 4 评论 -
QTcpSocket、QTcpServer实现TCP通信
1、主机信息查询查询一个主机的MAC地址和IP地址是网络应用程序中经常用到的功能,Qt提供了QHostInfo和QNetworkInterface类用于此类信息的查询。QHostInfo类localHostName()可获取本机的主机名;fromName()通过主机名获取IP地址;QNetworkInterface类allInterfaces返回主机上所有的网络接口列表(每个网络...原创 2019-03-17 13:58:49 · 6531 阅读 · 0 评论 -
QTreeWidget实现节点拖拽
前言刚进公司没多久,老大就让做一个实现拖放的小插件,要求可拖拽,可缩放。从网上查了很多资料,也看了别人写的demo,总算摸索出一些门道,下面分享给大家,如有疑问,可评论,大家一起学习!效果核心代码QCTreeWidget.cpp// 左侧项目树QCTreeWidget::QCTreeWidget(const QString& text, QWidget *parent): ...原创 2019-04-29 11:54:31 · 12068 阅读 · 21 评论 -
QTableWidget中添加button
QTableWidget中添加QPushButton在QTableWidget中可以添加多种Qt的空间信息,本文只以QPushButton为例进行说明:// 创建QPushButton控件QPushButton *pBtn = new QPushButton(); // 绑定信号connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClic...原创 2019-07-20 12:45:56 · 10156 阅读 · 2 评论 -
QTableWidget交换两行的数据,实现按键数据上/下移
转自:https://blog.csdn.net/DoleH/article/details/85243175QTableWidget交换两行的数据,实现按键数据上/下移预备操作在QT designer中添加一个tableWidget在QT designer中添加两个PushButton双击tableWidget可以对表头进行修改在程序中,对表格进行初始化//初始化table...转载 2019-07-27 12:41:48 · 2480 阅读 · 0 评论 -
Qt 网络编程
一、Qt 网络编程QNetworkAccessManager提供了发送请求的各种API,以及网络配置相关的方法;QNetworkReply是QNetworkAccessManager根据你提交的QNetworkRequest构造的一个应答对象,一旦请求发出,就可以获取网络操作中的各种状态;QNetworkRequest代表一个网络请求,包括URL、HTTP访问的User-Agent、用户名...原创 2019-08-27 11:10:52 · 372 阅读 · 0 评论 -
error: undefined reference to `_imp__glShadeModel@4
error: undefined reference to `_imp__glShadeModel@4错误截图解决方案在PRO文件中添加LIBS += -lopengl32 -lglu32 -lglut \原创 2019-10-10 16:10:02 · 525 阅读 · 0 评论 -
Qt网络编程
https://blog.csdn.net/u014252478/article/details/80377103https://blog.csdn.net/y____xiang/article/details/80398913https://blog.csdn.net/m0_37357063/article/details/80744011https://www.cnblogs.com/s...原创 2019-03-27 16:24:28 · 142 阅读 · 0 评论 -
Qt 之 消息机制和事件处理方式
转自:http://www.cnblogs.com/zhaobinyouth/p/7688954.html1、图形界面应用程序的消息处理模型特点:基于操作系统才能运行;GUI应用程序提供的功能必须由用户触发;用户操作界面时操作系统是第一个感知的 ;系统内核的消息通过事件处理转变成QT的信号。2. Qt中的事件处理(1)在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEv...转载 2019-02-28 10:54:21 · 1683 阅读 · 0 评论 -
Qt 之 Model/View框架(一)
转自:http://blog.51cto.com/9291927/1879117 作者:天山老妖S一、Model/View框架简介1、Model/View框架核心思想 Model/View框架的核心思想是模型(数据)与视图(显示)相分离,模型对外提供标准接口存取数据,不关心数据如何显示,视图自定义数据的显示方式,不关心数据如何组织存储。...转载 2019-01-21 16:04:14 · 1405 阅读 · 0 评论 -
Qt Linguist翻译 介绍
转自:https://blog.csdn.net/liang19890820/article/details/50274409简介Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。发布者:承担了全面发布应用程序的责任。通常,他们协调开发者和翻译者的工作,可以使用lupdate工具同步源代码,进行翻译,使用lrel...转载 2019-01-21 14:28:37 · 1081 阅读 · 0 评论 -
Qt 之进程间通信(TCP/IP)
简述可以通过Qt提供的IPC使用TCP/IP,使用QtNetwork模块即可实现,TCP/IP在实现应用程序和进程内部通信或与远程进程间的通信方面非常有用。QtNetwork模块提供的类能够创建基于TCP/IP的客户端与服务端应用程序。为实现底层的网络访问,可以使用QTcpSocket、QTcpServer和QUdpSocket,并提供底层网络类。还提供了使用常规协议实现网络操作的QNetwo...原创 2019-01-21 13:58:50 · 1008 阅读 · 0 评论 -
Qt 之自定义界面(添加自定义标题栏)
转自:https://blog.csdn.net/liang19890820/article/details/50555298简述学习作者一去丶二三里关于Qt 之自定义界面的博客,自己参考作者的源码实现了自定义窗体界面,可控制窗体最小化、最大化、关闭的按钮。Qt designer 设计界面控件效果实现customtitlewidget.h文件#ifndef CUSTOMTITLEWI...转载 2019-01-21 11:23:34 · 6414 阅读 · 1 评论 -
Qt 之 QuaZIP(zip 压缩/解压缩)
转自:https://blog.csdn.net/liang19890820/article/details/50636181简述QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库。适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开。Qt中提供了qCompress/qUncompress来进行文件的压...转载 2019-01-21 10:09:31 · 601 阅读 · 0 评论 -
浅谈 qmake 之 pro、pri、prf、prl文件
转自:https://blog.csdn.net/qq_25800311/article/details/83001725尽管每次和cmake对比起来,我们总是说 qmake 简单、功能少。但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧:不是太清楚CONFIG等变量到底如何起作用的;用过的qmake内置变量和函数不超过20个;看Qt Creator源码或者QtSolut...转载 2019-01-21 09:46:12 · 355 阅读 · 0 评论 -
Qt之JSON生成与解析
转自:一去二三里- 简述Qt5 中包含了处理 JSON 的类,均以 QJson 开头(例如:QJsonDocument、QJsonArray、QJsonObject),在 QtCore 模块中,不需要额外引入其它模块。- 常用的JSON库json.org 中介绍了 JSON 在各种语言中的应用,在 C/C++ 中比较常用的JSON 库主要有以下几个:JsonCppJsonCpp 是一...转载 2019-01-08 16:43:51 · 1926 阅读 · 0 评论 -
Qt5 MVC框架
1、MVC 设计模式起源于smalltalk的一种与用户界面设计相关的设计模式。作用:实现数据与用户界面分离;组成:模型model(表示数据)、视图view(表示用户界面)及控制controller(定义了用户在界面上的操作)。2、Qt MVC设计模式Qt的MVC设计模式没有控制controller,添加了代理delegate能够自定义数据条目item的现实和编辑方式。3、模型和视图...转载 2019-01-08 14:16:56 · 1017 阅读 · 0 评论 -
Qt 之 学习资源大杂烩
下面是本人收集的Qt相关学习资源,提供给大家,希望能帮助到大家!CSDN Qt论坛https://bbs.csdn.net/forums/Qt/closed?page=3QTCN论坛(里面有好多大牛的作品,可免费学习)http://www.qtcn.org/bbs/index.php前行中的小猪 博客(Qt界面开发小汇总)https://blog.csdn.net/GoForwar...原创 2018-11-17 15:07:19 · 257 阅读 · 0 评论 -
Qt 之 QTableView 样式参考
QTableView样式分多个区域整体样式QTableView { color: white; /*表格内文字颜色*/ gridline-color: black; /*表格内框颜色*/ background-color: rgb(1...转载 2018-11-17 14:23:47 · 10625 阅读 · 1 评论 -
Qt 之 QTableView表格滚动条样式
QTableView表格滚动条样式效果图:垂直与水平滚动条样式代码:ui->QTableView->verticalScrollBar()->setStyleSheet("QScrollBar:vertical{" //垂直滑块整体 "b...转载 2018-11-17 14:05:48 · 4773 阅读 · 2 评论