![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
Sparrow_du
这个作者很懒,什么都没留下…
展开
-
QImage、QPainter绘图
QImage、Qpainter绘制圆形、矩形、圆弧、扇形等原创 2022-08-04 17:31:19 · 2680 阅读 · 0 评论 -
QScrollArea实现内容拖动
QScrollArea *area = new QScrollArea();area->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//关闭水平滑块,同理也可关闭纵向滑块QHBoxLayout *layout = new QHBoxLayout();QWidget *wgt = new QWidget();wgt->setLayout(layout);area->setWidget(wgt);area->se.原创 2022-05-09 11:48:48 · 405 阅读 · 0 评论 -
QProcess解决无交互输入密码问题
首先,QProcess能够调用bash执行指令;问题是在执行过程中会碰到需要输入密码的情景。大多情况下,我们在程序中调用QProcess并不需要用户再通过交互输入密码,希望通过某种手段直接输入密码或者跳过。下面开始解决这个问题:1、终端支持连续执行指令,如:cd /home/Sparrow_du/;ls -la;2、通过管道可以将密码传递给sudo指令,如:echo 123456 | sudo -S cd /home/Sparrow_du/在终端中执行上面指令,会提示输入密码原创 2021-11-18 21:20:41 · 2171 阅读 · 0 评论 -
Ubuntu打包发布qt程序
编写打包工具新建目录demoPack用于存放打包文件。 进入编译文件夹,找打可执行文件demo,新建一个脚本文件pack.sh,作用是提取lib文件,内容如下:#!/bin/sh exe="demo" #你需要发布的程序名称 des="/home/user/demoPack" #创建文件夹的位置 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des新建脚本文件dem原创 2021-01-12 15:48:50 · 578 阅读 · 0 评论 -
ubuntn安装qt5.12.10
ubuntu安装qt5.12.10下载http://download.qt.io/archive/qt/5.12/5.12.10/第一次运行报错Could not found load the Qt platform plugin “XCB” in “” even though it was found.解决sudo -ssudo apt-get install libcap2-binsudo apt-get install --reinstall libxcb-xinerama0可以原创 2021-01-04 10:58:05 · 752 阅读 · 0 评论 -
Qt编译时报堆空间不足
pro文件中加上:CONFIG += resources_big搞定原创 2020-10-30 15:26:27 · 439 阅读 · 0 评论 -
QSS按钮样式设置的坑,按下(pressed)时按钮颜色不变化
正确的设置:按钮颜色、disable后的颜色、按下的颜色QPushButton:focus{outline: none;}QPushButton{ color: white; border:hide; border-radius:2px; padding:0px 0px; background-color: rgb(51,51,51);}QPushButton:!enabled{ color: gray; border:hide;...原创 2020-10-14 16:46:36 · 4340 阅读 · 2 评论 -
Double得有效位
Double得有效位QDoubleSpinBox * double_spin_box = dynamic_cast<QDoubleSpinBox *>(ui->VarEditTableWgt->cellWidget(0, 0)); var.value = double_spin_box ? QString::number(double_spin_box->value(), 'g', 18) : "0";原创 2020-09-22 15:08:34 · 320 阅读 · 0 评论 -
Qt图片适应QLabel大小
QImage Image; Image.load("d:/test.jpg"); QPixmap pixmap = QPixmap::fromImage(Image); int with = ui->labPic->width(); int height = ui->labPic->height(); QPixmap fitpixmap = pixmap.scaled(with, height, Qt::IgnoreAspe...原创 2020-07-21 20:54:05 · 755 阅读 · 0 评论 -
QT编译静态库与动态库
静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。静态库与.o文件格式相似,可以看成是一组目标文件(.o/.obj)的集合,即很多目标文件压缩后打包形成的一个文件。静态库特点:I 静态库对函数库的链接是放在编译期完成的。II 程序在运行时与函数库再无瓜葛,移动方便。III 浪费空间和资源,因为所有的目标文件相当于拷贝进了可执行文件。动态库在编译时不会被链接到目标代码中,而是在程序运行时才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份原创 2020-05-28 13:49:54 · 5217 阅读 · 0 评论 -
QT正则表达式截取字符串末尾数字
QRegExp rx("\\d+$"); rx.indexIn(old_name, 0); QString end_num = rx.cap(0);说明1、int QRegExp::indexIn(const QString &str, int offset = 0, QRegExp::CaretMode caretMode = CaretAtZero) const从字符串str的位置offset开始匹配,返回匹配到的字符串的开始位置2、QString Q...原创 2020-07-09 16:45:29 · 2547 阅读 · 1 评论 -
QComboBox下拉选项添加勾选框
checkcmbview.h#ifndef CHECKCMBVIEW_H#define CHECKCMBVIEW_H#include <QObject>#include <QListWidget>class QComboBox;class QCheckBox;class CheckCmbView : public QListWidget{ Q_OBJECTpublic: explicit CheckCmbView(QWidget *pare原创 2020-07-08 17:23:50 · 1727 阅读 · 0 评论 -
qtcreator中常用快捷键总结
F1 查看帮助F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4 头文件和源文件之间切换Ctrl+1 欢迎模式Ctrl+2 编辑模式Ctrl+3 调试模式Ctrl+4 项目设置模式Ctrl+5 帮助模式 Ctrl+6 输出模式Alt+0 显示或者隐藏侧边条,编辑模式下起作用(有时写的函数太长,...原创 2020-05-22 18:06:44 · 227 阅读 · 0 评论 -
QTcpSocket简单使用
QTcpServer类提供一个TCP基础服务类 继承自QObject这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。调用listen()来监听所有的连接,每当一个新的客户端连接到服务端就会发射信号newConnection()调用nextPendingConnection()来接受待处理的连接。返回一个连接的QTcpSocket(),我们可以用这个返回的套接字和客户端进行连接如果有错误,serverErr.原创 2020-05-22 17:35:55 · 7624 阅读 · 0 评论 -
QThread实现多线程
线程是系统调度的最小单元,一个进程可以包含多个线程,作为任务的真正运作者,有自己的栈(Stack)、寄存器(Register)、本地存储(Thread Local)等,但是会和进程内其他线程共享文件描述符、虚拟地址空间等。进程可以多了解QProcess,并且QT提供了多种进程间通信的方式,包括TCP/IP,共享内存,D-BUS,QT通信协议,你可以分别通过帮助文档了解QtNetwork模块,QSharedMemory类,D-BUS(QtDBus模块),QCopChannel来使用它们,并且是可以加锁来同原创 2020-05-20 10:16:44 · 376 阅读 · 0 评论 -
QT获取文件路径
QString file_path = QFileDialog::getOpenFileName(nullptr, tr("Import File"), "/", "txt(*txt)");QFile txt_file(file_path);if(txt_file.open(QIODevice::ReadOnly | QIODevice::Text)) { QByteArray line = txt_file.readLine(); QString params(line);.原创 2020-05-14 15:54:29 · 1242 阅读 · 0 评论 -
QT代码支持中文
配置使用QStringLiteral(",");原创 2020-05-12 18:24:30 · 425 阅读 · 0 评论 -
QT、C++面试中的几个问题
1、虚析构delete基类指针指向派生类时防止子类的数据不会被释放造成内存泄漏当父类指针指向子类时,只会调用父类析构函数,子类析构函数不被调用,会造成内存泄漏将父类的析构函数定义为虚析构函数,那么父类指针会先调用子类析构,再调用父类析构,使内存得到释放静态库和动态库在运行期某变量发生变化,调用者能否感知静态库是在编译期进行连接,相当于拷贝了一份代码,特点是程序在运行时与函数库再无瓜葛,移植方便,缺点是浪费空间和资源,因为所有相关得目标文件与牵涉到得函数库被链接合成一个可执行文件,程序得更新、原创 2020-05-12 10:23:18 · 1949 阅读 · 0 评论 -
MobaXterm
https://mobaxterm.mobatek.net/download-home-edition.html原创 2020-04-16 21:10:52 · 177 阅读 · 1 评论 -
Qt程序实现自动重启
方法一://restart hmiqApp->quit();QProcess::startDetached(qApp->applicationFilePath(), QStringList());方法二:1、类中调用 qApp->exit(888); 2、main.cpp中实现 int e = app.exec(); if(e == 8...原创 2020-04-08 14:13:35 · 600 阅读 · 0 评论 -
QCombox隐藏某一项
有事想隐藏下拉选项的某一项,而又不改变索引,可以使用如下方法 QListView* view = qobject_cast<QListView *>(combo->view()); Q_ASSERT(view != nullptr); view->setRowHidden(3, true); 如上,索引值不会改变,如果需要显示的时候view...原创 2020-03-09 17:30:45 · 1700 阅读 · 1 评论 -
QT发布windows程序
Qt生成release后的可执行程序*.exe要发布在其它平台,需要用到Qt自带的一个工具windeployqt.exe。只需要简单的两步就可以完成。a1 把可执行程序放到单独文件a2 在qt自带ming32编译器执行命令windeployqt *.exe就可以自动添加相应库和文件具体步骤如下:1.1首先把可执行程序*.exe放到一个单独文件夹下E:testcd /d E:\te...原创 2020-03-06 17:45:53 · 264 阅读 · 0 评论 -
设置QTabWidget样式表
QWidget{font: 14pt "Ubuntu";}QWidget#pageZero{ background-color:rgb(235,237,239);}QTabBar::tab{min-width:140;max-width:300;height:35;}QTabBar::tab:focus{outline:none;}QTabWidget:...原创 2020-01-14 14:05:59 · 1561 阅读 · 0 评论 -
QLineEdit用正则表达式限制double类型输入,double转为9位小数的字符串
QRegExp double_rx10000("10000|([0-9]{0,4}[\.][0-9]{1,6})");ui->edtOffset_0->setValidator(new QRegExpValidator(double_rx10000, ui->edtOffset_0));double new_x;QString::number( new_x, ...原创 2019-12-27 11:13:46 · 672 阅读 · 0 评论 -
QT 导出.csv文件
QString file_name = QFileDialog::getSaveFileName(m_wgt, tr("Choice file"), "./", "*.csv");QFile out_file(file_name);if (!out_file.open(QIODevice::WriteOnly | QIODevice::Text)) return;for (int i ...原创 2019-12-12 14:23:12 · 1060 阅读 · 0 评论 -
git 打 tag
通常在发布软件的时候打一个tag,tag会记录版本的commit号,方便后期回溯。列出已有的taggit tag新建tag使用git tag命令跟上tag名字,直接创建一个tag。git tag v1.0还可以加上-a参数来创建一个带备注的tag,备注信息由-m指定。如果你未传入-m则创建过程系统会自动为你打开编辑器让你填写备注信息。git tag -a ...原创 2019-11-28 09:58:49 · 597 阅读 · 0 评论 -
Qt warning : 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
Qt警告warning : 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失解决办法:用记事本打开报警文件,点击另存为,保存时编码选择 “带有BOM的UTF-8”,替换原有文件。...原创 2019-11-27 17:49:04 · 3318 阅读 · 3 评论 -
Git部署Git使用Git子模块
1、部署SSH keys打开终端执行(使用注册git使用的邮箱地址)ssh-keygen -t rsa -C "xxxx@xx.com"察看密钥cat ~/.ssh/id_rsa.pub将密钥复制到getlab中,添加即可2、本地使用gitgit init //在当前文件夹中初始化本地仓库git init filename ...原创 2019-02-28 15:49:15 · 882 阅读 · 0 评论 -
Qt5,信号槽关联错误
一、错误提示error: C2664: “QMetaObject::Connection QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const”: 无法将参数 2 从“overloaded-function”转换为“const char *”二、错误原因1、Qt5的con...原创 2019-11-22 16:40:00 · 1412 阅读 · 0 评论 -
使用QtXlsx读写Excel文件
一、获取QtXlsxhttps://github.com/dbzhang800/QtXlsxWriter二、编译1、下载并解压,得到如下文件2、用QtCreater打开,仅构建src项目即可3、构建报错,将QList改为QVector即可,需要添加#include <QVector>4、编译成功后得到如下目录5、拷贝bin目录下文件到Qt安装...原创 2019-11-18 20:40:10 · 6279 阅读 · 7 评论 -
QTreeWidget实现勾选、半勾选、未勾选
seletemenuwidget.h#ifndef SELETEMENUWIDGET_H#define SELETEMENUWIDGET_H#include <QWidget>#include <QTreeWidgetItem>namespace Ui {class SeleteMenuWidget;}class SeleteMenuWidget...原创 2019-11-11 17:50:09 · 815 阅读 · 0 评论 -
QT 图片与base64互转
QT 图片与base64互转1、图片转base64 QImage image(":/image/wrong"); QByteArray ba; QBuffer buf(&ba); image.save(&buf, "png"); qDebug() << ba.toBase64(); buf.close();2、...原创 2019-10-30 16:27:18 · 6192 阅读 · 1 评论 -
popen和pclose
常见的操作是创建一个管道连接到另一个进程,然后读其输出或向其输入端发送数据,为此,标准I/O库提供了两个函数popen和pclose。这两个函数实现的操作是:创建一个管道,调用fork产生一个子进程,关闭管道的不使用端,执行一个shell以运行命令,然后等待命令终止。#include <stdio.h>FILE *popen(const char *cmdstring, ...转载 2019-01-17 09:46:49 · 1468 阅读 · 0 评论 -
QT4升级QT5调研报告
平台差异拟使用windows7平台,linux平台依赖的系统文件及对应链接库,须在windows平台找到对应库,或者替代库。(1)如sys/types.h ,sys/ioctl.h ,net/if.h 等,因为平台差异所以在代码中会尽量避免使用,或寻找替代。(2)util文件夹下的thread_safe_queue.h,timer.h,unique_queue.h无用,可删。(3)包...原创 2019-01-24 16:25:35 · 384 阅读 · 0 评论 -
namespace
讲的很好,学习https://www.cnblogs.com/zhoug2020/p/5972439.html转载 2019-01-11 15:25:13 · 168 阅读 · 0 评论 -
static 变量
在C语言中,关键字static的意思是静态的,有3个明显的作用:1. 在函数体内,静态变量具有记忆作用,即一个被声明为静态的变量在这一函数被调用的过程中其值维持不变。2. 在模块内(但在函数体外),它的作用域范围是有限制的,如果一个变量被声明为静态的,那么该变量可以被模块内所有的函数访问,但不能被模块外的其他函数访问。3. 内部函数应该在当前源文件中说明和定义,对于可在当前源文件以外使...转载 2019-01-11 14:26:51 · 403 阅读 · 0 评论 -
ubuntu shell 直接输入密码
创建test.shgedit text.sh内容:#!/bin/bashcd ../GITLAB //指定到相应文件夹sudo -S gitk <<EOF //启动gitk并直接输入密码du123456EOF对应终端中的操作如下:cd ../GITLAB sudo gitk输入密码...原创 2019-01-11 11:45:10 · 1546 阅读 · 0 评论 -
QT第三方串口类Win_QextSerialPort,串口工具插拔后无法继续使用问题
if(myCom!=NULL){ myCom->close(); myCom->setParent(NULL); delete myCom; myCom=NULL; } myCom = new Win_QextSerialPort(portData.Com,QextSerialBa...原创 2018-12-05 16:36:14 · 1891 阅读 · 0 评论 -
QT创建和使用动态链接库
1、首先建立库文件2、选择所需模块3、顺序确认完成后,如下图注意:上图中keycomm_global.h中的内容可以复制到keycomm.h中去,在以后调用时只调用keycomm.h即可,否则调用时需要两个头文件同事使用。4、在keycomm.h和keycomm.cpp中可以正常编写代码,和使用别的类时相同。如下图创建int add(int a,int b)实现返回a+b5、运行出现下图弹窗,可忽...原创 2018-05-31 10:36:13 · 2729 阅读 · 2 评论 -
QT添加资源文件并使用
一、添加资源文件,右键项目,添加新文件-〉Qt Resource File-〉命名,如下图:添加完成后在工程目录中会出现相对应的资源qrc文件,右键选择用资源管理器打开,先添加前缀,前缀可自行设置,后选择要添加的图形文件,图形文件一般放在相应工程文件夹中,可新建image文件夹并将所有工程所需图片放至文件夹。二、资源文件的调用1、创建QImage对象,调用load加载图片即可,...原创 2018-03-16 14:07:30 · 24320 阅读 · 0 评论