QT
文章平均质量分 55
QT
半生瓜のblog
道阻且长。
展开
-
【QT】解决应用程序收不到指定端口数据的问题
在解决问题的时候需要理清思路,想想产生问题的可能。可能有些想法会一闪而过,如果可以的话记下来也不错。原创 2023-06-19 21:47:28 · 1990 阅读 · 0 评论 -
【QT】解决继承QThread的子线程导致程序无法关闭&主线程关闭太快导致子线程中的槽方法未执行
使用串口进行通信子线程实现。原创 2023-06-08 21:05:36 · 1495 阅读 · 0 评论 -
【QT】QT Designer控件随窗口大小自适应
相关参考——Qt Designer生成的图形可以自适应窗口的大小变化重点:设置子部件的sizePolicy属性。设置子部件间的布局。设置子部件布局的layoutStretch属性设置子部件间的比例。设置父部件布局属性。示例:设置sizePolicy为两个子QWidget部件设置水平布局,并设置layoutStretch属性。设置父部件布局为水平布局。注意:这里的父部件是最上面那层MainWindowClass,之后再给其它父部件设置布局,为当前部件的上一层,等下原创 2022-05-19 18:40:18 · 7161 阅读 · 4 评论 -
【QT】解决QT两个类之间传递变量失败,或者extern变量引用无效。
前言例如我想实现一个程序,用户先进行登录,登录成功后传递用户账号信息到下一个窗口中。这就需要我在验证用户登录成功之后,new出下一个窗口,在构造函数中传递参数,注意构造的位置,不要在当前窗口close()后再构造。正确使用 MainWindow* mainwindow = new MainWindow(gUserAccount); close(); mainwindow->show();因为调用close()会自动销毁窗口类对象。...原创 2022-04-28 00:55:28 · 1331 阅读 · 0 评论 -
【QT】解决QSqlQuery::exec: database not open
在 m_db = QSqlDatabase::addDatabase(“xxx”);构造完数据库之后,记得openm_db = QSqlDatabase::addDatabase(“QMYSQL”);原创 2022-04-27 17:52:40 · 3815 阅读 · 0 评论 -
【QT】解决VS开发QT程序,切换至release版本提示找不到相关头文件。
注意重新添加相关模块支持原创 2022-04-21 12:04:16 · 1991 阅读 · 0 评论 -
【QT】图形视图、动画框架
Qt图形视图框架、动画框架Qt提供了图形视图框架(GraphicsView Framework)、动画框架(The Animation Framework)、状态机框架(The State Machine Framework)来实现更加高级的图形与动画应用。使用这些框架可以快速设计出动态GUI应用和各种动画、游戏程序。图形视图框架提供了基于图像项模型的模型视图编程方法,主要由场景、视图和图形项这三部分组成,这三部分分别由QGraphicsScene、QGraphicsView、QGraphicsItem原创 2022-03-29 09:21:52 · 1448 阅读 · 1 评论 -
【QT】多语言翻译
QT多语言翻译方法tr()函数获取需要翻译的文本lupdate.exe编译生成xxx.ts文件linguist.exe进行翻译lrelease.exe生成去xxx.qm文件示例单一语言翻译,直接main中注册QTranslator *translator = new QTranslator;translator->load("lang_en.qm");a.installTranslator(translator);//安装翻译器多种语言#include "widge原创 2022-03-24 14:35:13 · 566 阅读 · 0 评论 -
【QT】QT线程
线程QT中的QThread提供了与平台无关的线程,一个QThread代表了一个应用程序中可用独立控制的线程,它与进程中的其他线程共享数据,但是是独立执行的,QThread从run()函数开始执行,默认run()通过exec()来开启事件循环,并在线程内运行一个Qt事件循环。要创建一个线程,需要继承自QThread,并重新实现run()函数。示例:#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>class MyThrea原创 2022-03-24 11:07:41 · 950 阅读 · 0 评论 -
【QT】TCP、UDP通信
UDP、TCPUDPUDP(User Datagram Protocol,用户数据报协议)UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用与可靠性不严格,不是非常重要的传输。QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报。“Socket”即套接字,即IP地址+端口号。其中IP地址指定了网络中的一台主机,端口号则指定了该主机上的一个网络程序,使用套接字即可实现网络上的两个应用程序之间的通信。QUdpSocket支持IPv4广播,要广播数据报,原创 2022-03-23 22:30:10 · 2366 阅读 · 0 评论 -
【QT】QT中使用Lambda表达式
lambda表达式Qt5中有全新的信号与槽语法,在Qt4基础上提高了信号与槽的灵活性,允许使用任意函数作为槽函数。但如果想更好地执行异步代码,来函数名都不想定义,则可以通过lambda表达式来达到这个目的。lambda表达式是C++11新增加的特性。lambda表达式的引入符引入符说明[]不捕获任何变量[=]以传值的方式捕获所有外部变量[&]以传引用的方式捕获所有外部变量[x,&y]x以传值的方式捕获,y以传引用的方式捕获[=,&a原创 2022-03-01 23:12:01 · 5108 阅读 · 0 评论 -
【QT】QString、QLatin1String、QStringLiteral
QString、QLatin1String、QStringLiteralQStringQString:QString提供了一个Unicode字符串,QString存储的是一串QChar,而QChar提供了16位的Unicode字符,后台使用隐式共享减少了内存的开销。假设QObject::setObject函数参数列表是QString类型,给它传递参数"test",这里有一个通过构造产生的从const char*到QString的隐式转换,产生一个新的QString对象,字符串数据拷贝,并将字符串从原创 2022-02-23 19:51:24 · 907 阅读 · 0 评论 -
【QT】QT基本图形绘制
基本图形绘制QPainter绘制基本图形**注意:**QPainter画弧度所使用的角度值,是以1/16°为单位的,在画弧度的时候1°用16表示。**例如:**30°——30 x 16兼容模式QPainer::CompositionMode**例如:**可用于图片叠加,达到你想要的效果。QPainterPath绘制简单图形QPainterPath为QPainter类提供一个存储容器,里面包含了所要绘制的内容的集合及绘制顺序,如长方形、多边形、曲线等各种任意图形。当需要绘制此预先存储在QP原创 2022-02-23 14:53:38 · 4615 阅读 · 0 评论 -
【QT】QT事件处理
事件处理QT中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。QT中,任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent()、mousePressEvent()等事件处理函数来处理特定部件的特定事件。每个程序的main函数最后都会调用QApplication类的exec()函数,它会使QT应用程序进入到事件循环,使应用程序在运行的时候接收各种事件。一旦有事件发生,Q原创 2022-02-21 11:13:15 · 1270 阅读 · 0 评论 -
【QT】QT调色板类
QPalette调色板类QT提供的调色板类QPalette专门用于管理部件外观显示,相当于部件或对话框的调色板,管理他们所有的颜色信息。每个部件都包含一个QPalette对象,在显示时,按照它的QPalette对象中对各部分各状态下的颜色的描述进行绘制。dialog.cpp#include "dialog.h"Dialog::Dialog(QWidget *parent) : QDialog(parent){ createCtrlFrame(); createConten原创 2022-02-19 21:07:11 · 741 阅读 · 0 评论 -
【QT】QT不规则窗体效果——遮罩
不规则窗体效果——遮罩根据一张图片来设置窗体显示效果。setMask#include "widget.h"#include "ui_widget.h"#include<QPixmap>#include<QBitmap>#include<QPainter>Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this)原创 2022-02-19 11:40:19 · 1286 阅读 · 0 评论 -
【QT】QT透明及阴影
QT部件透明及阴影效果透明:全部透明。窗口透明属性,取值0~1,0表示完全透明,1表示完全不透明setWindowOpacity(0.5);部件不透明,窗体背景完全透明。 setWindowFlags(Qt::FramelessWindowHint);//设置无边框 setAttribute(Qt::WA_TranslucentBackground);//设置背景透明部件设置透明。QGraphicsOpacityEffect *opacityEffect = new QGraphics原创 2022-02-18 22:52:47 · 609 阅读 · 0 评论 -
【QT】QT样式表语法
Qt样式表Qt样式表介绍Qt样式表是一个可以自定义部件外观的强大机制,样式表的概念、术语、语法均受到HTML层叠样式表(CSS)的启发。样式表可通过QApplication::setStyleSheet()函数将其设置到整个应用程序上,也可以使用QWidget::setStyleSheet()将其设置到指定的部件或子部件上,不同级别均可设置样式表,称为样式表的层叠。样式表也可通过设计模式编辑样式表。Qt样式表语法及使用样式规则每个样式规则由选择器和声明组成。选择器:指定受该规则影响的部件。原创 2022-02-18 20:34:59 · 1288 阅读 · 0 评论 -
【QT】QT模型/视图
模型/视图编程Qt中的模型/视图架构用来实现大量的数据存储、处理及显示。MVC(Model-View-Controller)包括了3个组件:模型(model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;控制(Controller)定义了用户界面对用户输入的反应方式。委托(Delegate)用于定制数据的渲染和编辑方式。模型所有的模型都基于QAbstractItemModel类,该类提供了十分灵活的接口来处理各种视图,这些视图的数据表现形式为表格(table)、列表(原创 2022-02-06 17:55:03 · 4614 阅读 · 0 评论 -
【QT】QT富文本
富文本QTextEdit支持富文本处理,即文档中可使用多种格式,如文字、图片、表格等。PlainText为纯文本。由此可类比, windows的记事本就是纯文本编辑器,word就是富文本编辑器。文档的光标主要基于QTextCursor类,文档的框架主要基于QTextDocument类。一个富文本的文档结构主要分为几种元素:框架(QTextFrameFormat)、文本块(QTextBlock)、表格(QTextTable)、列表(QTxtList)。每种元素的格式有相应的format类表示:框架原创 2022-02-03 12:24:26 · 3412 阅读 · 2 评论 -
【QT】QT菜单栏、状态栏、工具栏
菜单栏、工具栏、状态栏主窗口框架(QMainWindow)拥有自己的布局,包括以下组件:菜单栏菜单栏包含了一个下拉菜单项的列表,这些菜单项通过QAction动作类实现。一个主窗口只能有一个菜单栏。工具栏工具栏一般用于常用的菜单项,也可以插入其他窗口部件,一个主窗口可以拥有多个工具栏。中心部件主窗口中心区域可以放入一个窗口部件作为中心部件,是应用程序的主要功能实现区域,一个主窗口只能有一个中心部件。dock部件dock部件又称为停靠部件,或停靠窗口,可停靠在窗口部件的四周,用原创 2022-01-29 13:44:46 · 3654 阅读 · 0 评论 -
【QT】QT打印调试信息
//QDebug打印调试信息 int num = 20; qDebug("十进制%d",num); qDebug("八进制%o",num); qDebug("十六进制%x",num); qreal PI = 3.14; qDebug("浮点%f",PI); qDebug("科学计数法%e",PI); qDebug("123%%");//123% //另一种输入方式 qDebug()<<PI; QString.原创 2022-01-28 18:44:23 · 2834 阅读 · 0 评论 -
【QT】QT文件处理
文件处理QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。处理文本文件和二进制文件,可以使用QTextStream类和QDataStream类。处理临时文件可以使用QTemporaryFile,获取信息可以使用QFileInfo,处理目录可以使用QDir,监视文件和目录变化可以使用QFileSystemWatcher。QFile类示例#include <QCoreApplication>#include<QFile>#includ原创 2022-01-24 23:28:13 · 1256 阅读 · 0 评论 -
【QT】QT正则表达式
QT正则表达式正则表达式即一个文本匹配字符串的一种模式。Qt中QRegExp类实现使用正则表达式进行模式匹配,且完全支持Unicode,主要应用:字符串验证、搜索、查找替换、分割。正则表达式中字符及字符集正则表达式中的量词正则表达式中的断言QRegExp支持通配符示例: //完整匹配 QRegExp reg("a"); qDebug()<<reg.exactMatch("a"); //任意个数字+两个非数字 QRegExp reg0("\\原创 2022-01-24 16:53:58 · 1915 阅读 · 0 评论 -
【QT】QT容器
QT容器QString类隐式共享:隐式数据共享机制去最大化资源有效利用和最小化复制克隆操作。隐式数据共享类当作为函数参数传递的时候,不仅安全而且效率很高,因为传递的时候只是传递了数据的指针,数据本身只当自己被修改的时候才会去复制。简称写时复制。数据相同时,执行浅拷贝,仅复制指向数据块的指针,数据不同时则执行深拷贝。隐式共享技术可以大大降低对内存的开销以及,CPU资源的消耗,很大程度提高应用程序的运行效率。QString类保存了16位的Unicode值(宽字节),Unicode把所有语言都统一到原创 2022-01-18 16:43:56 · 4044 阅读 · 0 评论 -
【QT】QT布局管理器
布局管理器设计模式实现布局详情见工具栏垂直布局,水平布局,打破布局。代码实现布局main.cpp#include "testlayout.h"#include <QApplication>#include<QLabel>#include<QLineEdit>#include<QFormLayout>#include<QRadioButton>#include<QVBoxLayout>#include<原创 2022-01-16 21:57:06 · 571 阅读 · 0 评论 -
【QT】QT窗口部件
QT窗口部件默认部件基类QT提供的默认部件基类包括QMainWindow、QWidget、和QDialog,这三个部件基类也是用的最多的。QMainWindow是带有菜单栏、工具栏、状态栏的主窗口类,它有自己单独的布局。布局有一个中心区域,通常是标准的QT部件,也可以是定制的部件,且必须有一个中心小部件。setCentralWidget()方法可设置中心部件。QWidget类是所有部件对象的基类,被称为基础窗口部件。QWidget提供自我绘制和处理用户输入等基本功能,如接收鼠标、键盘和其他事件,并原创 2022-01-16 12:25:53 · 934 阅读 · 0 评论 -
【QT】QT对象树
QT对象树QT提供了对象树机制,能够自动、有效的组织和管理继承自QObject的对象。每个继承自QObject类的对象通过它的对象链表(QObjectList)来管理子类对象,当用户创建一个子对象时,其对象链表相应更新子类对象的信息,对象链表可通过children()获取。当父类对象析构的时候,其对象链表中的所有(子类)对象也会被析构,父对象会自动,将其从父对象列表中删除,QT保证没有对象会被delete两次。开发中手动回收资源时建议使用deleteLater代替delete,因为deleteLate原创 2022-01-13 21:56:06 · 750 阅读 · 0 评论 -
【QT】QT元对象系统
QT元对象系统(Meta-Object-System)元对象系统元对象系统是一个基于标准C++的扩展,为QT提供了信号与槽机制、实时类型信息、动态属性系统。元对象系统的三个基本条件:类必须继承自QObject、类声明Q_OBJECT宏(默认私有)、元对象编译器moc。信号与槽机制是QT的核心机制,信号与槽是一种高级接口,应用于对象之间的通信。信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,要正确的处理信号和槽,必须借助一个称为moc(Meta-Object-Compiler),也原创 2022-01-13 11:13:47 · 2454 阅读 · 0 评论 -
【QT】自定义软件打包发布
自定义软件打包发布安装nisi和nisedit。打开nisedit。点击——文件——新建脚本:向导。设置名称等信息,点击下一步。选择安装图标——设置安装语言,点击下一步。选择授权文件(License.txt,里面的内容自定义。)点击下一步。选择你的程序相关文件,删掉默认的两个。点击添加文件,注意其中部分文件的路径。其中要注意的路径,就是带有文件夹的,如下图所示。添加完成,选中.exe文件,点击下一步。默认,点击下一步。原创 2022-01-11 18:23:54 · 549 阅读 · 0 评论