qt
秃头就能变强
这个作者很懒,什么都没留下...
展开
-
QMenuBar和QToolBar使用同一个QAction
将qmenubar中的action添加到qtoolbar中,而不是在toolbar中重复添加action原创 2023-11-17 09:47:24 · 234 阅读 · 0 评论 -
log4qt
Qt使用log4qt记录日志原创 2023-09-25 17:31:07 · 195 阅读 · 0 评论 -
Qt Xml的读、写、修改、删除
Qt关于Xml文件的创建写入、读取、添加、修改原创 2023-06-19 08:49:00 · 3709 阅读 · 0 评论 -
QFtp编译
QFtp编译打开源码修改头文件(不然编译会报错)打开qftp.proCONFIG += staticCONFIG -= shared改成CONFIG -= staticCONFIG += shared也就是+ - 号互换位置4. 编译生成文件linux下:*.a文件为.lib文件windows下:MSVC生成的也是.lib文件。此处使用的mingw编译,生成的是.a文件。6. 将Qt5Ftp.prl、Qt5Ft原创 2022-12-05 14:50:39 · 845 阅读 · 0 评论 -
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile原创 2022-07-11 08:56:59 · 550 阅读 · 0 评论 -
qtabwidget tab样式
qtabwidget样式设置原创 2022-05-12 14:09:24 · 3564 阅读 · 0 评论 -
qt监测串口插拔
实时监测串口插拔原创 2022-05-12 13:43:13 · 1462 阅读 · 0 评论 -
qtxlsx读写 excel
系列文章目录Qt 读取Excel表格数据 生成Excel表格并写入数据文章目录系列文章目录前言一、QtXlsx的编译?二、使用步骤1.引入库2.读数据3. 写数据前言相较于QAxObject读写excel,qtxlsx的使用更方便,而且不会因为excel驱动的问题导致读取失败。一、QtXlsx的编译?网上关于QtXlsx源码编译库的文章很多,在这不做多余赘述。二、使用步骤1.引入库代码如下(示例):QT += core gui xlsx // .pro#in原创 2022-04-20 11:26:39 · 3256 阅读 · 4 评论 -
QTreeWidget遍历父节点
void TabWidget_1::on_checkBox_2_stateChanged(int arg1){ if(arg1 != 0) { QAbstractItemModel* model = ui->treeWidget->model(); if(model->rowCount() <= 0) return; QTreeWidgetItem* item = nullptr; for (in.原创 2022-01-05 09:13:10 · 2730 阅读 · 0 评论 -
QListWidget 类似于组合按钮
之前记录过QPushButton添加图片文字,通过QButtonGroup实现多个按钮只有一个可以被同时选中,与之相比,QListWidget的使用更为简洁,例子如下:QListWidgetItem* lwItem2 = new QListWidgetItem(ui->listWidget);lwItem2->setIcon(QIcon(":/img/aio.png"));lwItem2->setText("AI");lwItem2->setTextAlignment(Qt:原创 2021-10-30 08:53:51 · 578 阅读 · 0 评论 -
qt 键盘事件
通常在写键盘事件时,以QPushButton为例:ui->pushbutton->setFocusPolicy(Qt::StrongFocus);protected: void keyPressEvent(QKeyEvent *event) override;void XXX::keyPressEvent(QKeyEvent *event){ if(event->key() == Qt::Key_Return || event->key() == Qt:原创 2021-10-25 16:45:07 · 821 阅读 · 0 评论 -
QLabel 文字阴影
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect;effect->setColor(QColor(100,100,100,100));effect->setBlurRadius(2); //模糊半径effect->setOffset(10); //偏移量ui->label->setGraphicsEffect(effect);原创 2021-04-20 14:10:38 · 920 阅读 · 0 评论 -
Qt 透明窗口
方法一:setWindowOpacity(0.5);窗体整体透明,部件也跟着一起透明,值为1时完全不透明方法二:如下,需要去掉标题栏,会导致一些正常的功能需要自己实现,且背景完全透明,所以需要重写void paintEvent(QPaintEvent *)setWindowFlag(Qt::FramelessWindowHint); //去掉标题栏setAttribute(Qt::WA_TranslucentBackground); //窗体背景透明void W.原创 2021-04-20 13:28:25 · 346 阅读 · 0 评论 -
SMTP 协议发送邮件
样式如图简单说明使用 SMTP 协议发送邮件需要通过所在邮箱开启这项协议才可以使用,如上述例子通过QQ 邮箱发给 126 邮箱,需要 QQ 邮箱开启 SMTP 协议,进入 QQ 邮箱-设置-账户-账户安全-POP3/SMTP 服务-点击开启即可。发件人邮箱我使用的是QQ邮箱,由于QQ邮箱在第三方登录需要输入授权码,在这里可以直接用授权码代替密码,QQ邮箱授权码: private: Ui::MainWindow *ui; QLabel *shouLabel; QL.原创 2021-03-16 13:36:50 · 1537 阅读 · 0 评论 -
DLL 获取网络连接状态
1.Win32 网络连接 dll 文件名叫:wininet.dll,位置在 C:\WINDOWS\system32 目录下,将其拷贝到项目工程下#include <QLibrary>#include <QLabel>#define INTERNET_CONNECTION_MODEM 1 //拨号#define INTERNET_CONNECTION_LAN 2 //局域网#define INTERNET_CONNECTION_PROXY 4 //代理上网#defi.原创 2021-03-16 13:15:43 · 449 阅读 · 0 评论 -
Qt 简单的视频播放器
1. 简述一个简单的视频播放器,包含暂停、停止、音量、播放时间、拖进等功能,界面未经过美化,纯功能例子2.简单分析2.1.视频播放器的两个主体播放器 QVideoWidget播放对象 QMediaPlayer2.2.播放对象的属性视频时长 duration() //return qint64 毫秒值当前播放的时长 position() //return qint64 毫秒值视频当前音量 volume() //return qint64 毫秒值是否原创 2021-03-12 16:51:58 · 4067 阅读 · 2 评论 -
qt 设置无边框窗口导致任务栏图标点击事件失效
将窗口设置成无边框窗口,用来重写重写窗口样式,一下代码就可实现:this->setWindowFlags(Qt::FramelessWindowHint );但是,这样会导致在点击桌面窗口栏程序图标时,程序界面无法实现正常的最大化和最小化,解决也很简单,如下:this->setWindowFlags(Qt::Window|Qt::FramelessWindowHint |Qt::WindowSystemMenuHint|Qt::WindowMinimizeButtonHint|Q.原创 2021-02-24 15:59:01 · 1981 阅读 · 4 评论 -
QTableView::setSpan: single cell span won‘t be added
在使用QTableWidget的 setSpan(row,column,rowCount,columnCount) 合并单元格时有时会遇到应用程序输出:QTableView::setSpan: single cell span won’t be added这个既不是报错也不是警告,算是一个提示。意思是:setSpan 不能合并单个单元格,也就是说setSpan中,rowCount > 1 || columnCount > 1,必须是2个单元格以上的单元格相合并。...原创 2020-12-18 16:13:47 · 2368 阅读 · 2 评论 -
QTableWidget合并单元格
void tabWidget_3::slot_showTable(QMap<QString,QList<QString>*> map,int count){ ui->tableWidget->verticalHeader()->setVisible(false); //列表头不可见 ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //表格不可编辑原创 2020-12-18 16:12:59 · 3688 阅读 · 1 评论 -
Qt 多个按钮每次只能选择一个
如上图,有时需要在多个按钮之间来回切换,且只能同时选中一个按钮。方法很简单#include <QButtonGroup>QButtonGroup* _btnGroup = new QButtonGroup(this); _btnGroup->addButton(ui->btn_1,0);_btnGroup->addButton(ui->btn_2,1);_btnGroup->addButton(ui->btn_3,2);_btnGroup-..原创 2020-12-18 09:18:52 · 1886 阅读 · 0 评论 -
Qt qpushbutton上添加图片和文字
在button上添加图片和文字,通过background-image、border-image、setIcon、pixmap等方式添加图片,都无法做到图片在上,文字在下。步骤一:在pushbutton 直接输入文字,调整文字位置步骤二:QLabel* image_label_3 = new QLabel;image_label_3->setFixedSize(50,50);image_label_3->setStyleSheet("QLabel{border-image:url(:/原创 2020-12-18 09:03:18 · 10539 阅读 · 8 评论 -
qt UDP & 组播 & 多网卡 后续
前一篇已经简述的UDP组播的使用,和多网卡存在的一些问题,针对之前没解决的问题,做以下描述:在有些电脑上接收不到数据,打开更改网络适配器,看是否存在Npcap Loopback Adapter;步骤一:步骤二:步骤三:右键禁用Npcap Loopback Adapter;基本就好了,如果还不行,直接禁用所需之外的所有适配器。想知道是哪个适配器导致接收不到数据,就一个个禁用排除。...原创 2020-12-04 14:30:41 · 1437 阅读 · 0 评论 -
qlineedit禁止中文输入法
ui->lineEdit->setAttribute(Qt::WA_InputMethodEnabled, false); 禁止使用中文输入法QIntValidator* validator = new QIntValidator(0,255,this);ui->lineEdit->setValidator(validator); 现在输入为0~255数字也可以直接用正则表达式限定输入的类型,长度等。...原创 2020-12-02 15:33:43 · 2243 阅读 · 1 评论 -
Qt setMouseTracking(bool) 在qtreeview和qtreewidget中无效
一、概述将窗口设置为无边框窗口:this->setWindowFlags(Qt::FramelessWindowHint);重写窗口移动、拉伸、最大最小化、关闭等函数。(之前文章已写)遇到窗口中存在qtreeview、qtreewidget时,特别是如下示意图所在位置时,会出现问题吧。如上图所示,在重写窗口的移动、拉伸时,会将窗口划分为以下9个部分(根据自己的需求,还可以继续划分);分别来显示拉伸窗口时鼠标光标的不同样式(具体操作看我上篇文章)。二、具体叙述这里简单概述以下,方便下面问原创 2020-11-26 17:44:05 · 863 阅读 · 1 评论 -
qt udp & 组播 & 多网卡
一、前言以下代码实现了udp组播的接收和发送数据的功能。但是,在多网卡环境下仍然存在部分问题,但也解决了大部分问题。具体的内容在下面叙述。二、大致步骤QT += network .pro文件添加network#include <QUdpSocket> 导入头文件QUdpSocket* udpSocket = new QUdpSocket; new个对象udpSocket->setSocketOption(QAbstractSocket::MulticastLoopbackOpt原创 2020-11-20 17:11:14 · 10127 阅读 · 2 评论 -
qt 正则表达式 和 常用正则表达式应用
1.以QLineEdit 为例在使用输入框是,有时需要限定输入的内容为数字或其他,或者是以某种固定的形式输入字符串,比如输入年月日。限定只能输入数字:QRegExp rx = QRegExp("[0-9]+$"); //QRegExp类提供使用正则表达式的模式匹配QRegExpValidator *validator = new QRegExpValidator(rx, this);//QRegExpValidator类用于根据正则表达式检查字符串edit_1->setValidator(v原创 2020-11-12 15:53:17 · 3742 阅读 · 0 评论 -
Qt 无边框窗口之 最大化/最小化/可伸缩/可移动
1.实现的功能窗口的 最大化和最大化前大小切换、最小化、关闭窗口、移动、拉伸、缩小。很多时候,为了界面的美观,需要将界面设置为无边框窗口,这就需要重写上述功能来完善窗口。2.具体步骤最大化、最小化、关闭 为三个按钮,按钮设置好布局位置,设置QIcon,将按钮添加入槽,具体步骤不在此叙述。以下三个槽函数即为最大化、最小化、关闭三个按钮的槽函数;私有变量中的变量和函数看注释和具体代码。private slots: void on_minBtn_clicked(); void on_原创 2020-11-11 11:00:17 · 7003 阅读 · 5 评论 -
qt之右键菜单 QMenu
以widget为例(widget的子类都可以如widget一样设置右键菜单):步骤一:ui->widget->setContextMenuPolicy(Qt::CustomContextMenu);原创 2020-11-10 14:35:12 · 1816 阅读 · 2 评论 -
QSplitter 分割窗口
1.页面布局如图,在splitter_widget中添加两个部件treeview和widget,让treeview和widget大小随鼠标拖动而变化。2,代码实现导入头文件#include <QSplitter> QSplitter *mysplitter = new QSplitter(Qt::Horizontal,ui->splitter_widget);//水平布局 mysplitter->setStyleSheet("QSplitter::handl原创 2020-11-09 18:22:44 · 480 阅读 · 5 评论 -
QtConcurrent::run() 并发模块的使用
1.引入模块QT += core gui concurrent2.并发运行函数将需要并行运行的部分封装成一个函数块void analysis::cacheFile(QVector<mes*> glist_03,QVector<mes*>glist_04) //是否有返回值,和是否传参看个人需要{ for(int i = 0; i < glist_03.size(); i++){ qDebug()<<"glist_03原创 2020-11-06 16:41:20 · 714 阅读 · 1 评论 -
qt qtoolbar添加按钮,按钮添加图片,鼠标移到控件上显示提示,分隔符
1.添加toolBar方法一:方法二:QToolBar *toolBar = new QToolBar;2.按钮设置QPushButton *portBtn = new QPushButton(this);portBtn->setIcon(QIcon(":/img/serialport.png")); //按钮添加图片portBtn->setToolTip("aaaa"); //鼠标移动到按钮上时显示提示 aaaa3.将按钮添加到工具栏//toolBar->add原创 2020-11-02 11:06:18 · 5620 阅读 · 0 评论 -
qt 子窗口显示在窗口最顶层
需求:当子窗口已存在时,点击(Btn)按钮子窗口显示在最顶层。在主窗口(MainWindow)通过按钮(Btn)生成一个子窗口 (QWidget),当子窗口未关闭,且被隐藏在主窗口或其他窗口下时,点击按钮(Btn)字窗口不会有任何反应,依然被隐藏在其他窗口下。已图片中的log文件为例:#include "log.h"QPushButton *btn = new QPushButton(this);Log *logTest = new Log;connect(btn,&QPushBut原创 2020-11-02 10:38:34 · 7228 阅读 · 0 评论 -
Qt 字符串的操作,转换成 int、16进制
字符串截取:QString str = "abcdefg";str.mid(2,2); //return cd 从下表索引为2开始取2个字符str.mid(3); //return defg 从下表索引为3开始的所有字符str.left(3); //return abc 取左边 3个字符str.right(3); //return efg 取右边3个字符str.left(str.lenght()-3); //return defg 取 除右边3个字符的所有字原创 2020-10-14 14:30:05 · 10952 阅读 · 1 评论 -
Qt 在MainWindow.cpp文件外使用ui
需要在mainwindow.cpp文件外使用ui来设置MainWindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include "other.h"QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{ Q_OBJEC原创 2020-10-10 09:38:51 · 3462 阅读 · 9 评论 -
Qt 读取Excel表格数据 生成Excel表格并写入数据
一、 读取Excel表格修改.pro文件,增加 axcontainerQT += axcontainer导入头文件#include "QFileDialog"#include "QAxObject"生成打开文件窗口 QString strFile = QFileDialog::getOpenFileName(this,QStringLiteral("选择Excel文件"),"",tr("Exel file(*.xls *.xlsx)")); if (strFile.i原创 2020-10-09 18:12:26 · 14297 阅读 · 14 评论 -
Qt sqlite 数据库的使用
1.sqlite的优点SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite。2.sqlite的使用修改.pro文件,添加sqlQT += sql添加头文件#include "QSqlDatabase"#include "QSqlQuery"#include "QSqlError"#include "QDebug"void MainWindow::connect_sqli原创 2020-10-07 11:41:18 · 462 阅读 · 1 评论 -
Qt 串口通信,数据读写
1.串口连接//查找可用的串口foreach (const QSerialPortInfo &info,QSerialPortInfo::availablePorts()){ ui->PortBox->addItem(info.portName());}QString setPortName = ui->PortBox->currentText(); //端口int setBaudBox = ui->BaudBox->currentText原创 2020-10-07 10:51:11 · 8623 阅读 · 1 评论 -
Qt 解决界面显示中文乱码
qt5中文乱码添加#include <qtextcodec.h>QTextCodec codec = QTextCodec::codecForName(“GBK”);btn -> setText*(**codec->toUnicode(“按钮1”));**我的代码:**加粗样式QPushButton * btn = new QPushButton;btn -> setParent(this);btn -> setFixedSize(100,30);QT原创 2020-07-10 11:38:46 · 1330 阅读 · 0 评论