Qt学习
太难了
kllo__
这个作者很懒,什么都没留下…
展开
-
Qt执行耗时操作导致界面卡顿的三种解决办法
Qt界面程序开发中,会遇到执行耗时操作时,导致界面卡顿。原因是界面主线程是单线程,如果在UI主线程中执行耗时操作,例如点击按钮,响应函数去数据库查询数据,数据量比较大时,查询需要几秒钟甚至几十秒的时间,如果UI主线程一直等待响应函数返回,阻塞在响应函数内部,就无法响应界面的其他消息或者事件,界面就会卡死,无响应;要实现好的用户体验,实现流程的界面操作程序,就不能老是卡,比较好的方式就是采用异步操作、多线程等方法来实现异步,并发;5秒内执行完,可以考虑这种方法,超过5秒,界面也会卡顿;转载 2023-07-10 13:42:49 · 6872 阅读 · 0 评论 -
QTablewidget根据单元格中的内容长度,显示tooltip气泡
【代码】QTablewidget根据单元格中的内容长度,显示tooltip气泡。原创 2023-05-10 09:37:39 · 602 阅读 · 1 评论 -
Qt:当指定目录下的文件数量大于设定值时,根据文件创建日期删除文件,同时删除指定目录下的空文件夹
1.获取指定目录下的所有文件,并按日期排序。原创 2023-04-28 11:25:11 · 495 阅读 · 0 评论 -
Qt::遍历获取指定目录下的所有文件(包括子目录中的文件)并按时间排序
【代码】Qt::遍历获取指定目录下的所有文件(包括子目录中的文件)并按时间排序。原创 2023-04-27 14:03:58 · 1236 阅读 · 0 评论 -
Qt:QNetworkAccessManager使用ftp协议上传文件
存在问题:中文命名的文件名称会乱码。原创 2023-04-20 09:27:18 · 1367 阅读 · 1 评论 -
Qt::XML文件的解析与创建
【代码】Qt::XML文件的解析与创建。原创 2023-04-06 16:16:50 · 702 阅读 · 0 评论 -
Qt::定时读取文件
【代码】Qt::定时读取文件。原创 2023-04-06 16:05:39 · 614 阅读 · 0 评论 -
Qt 5.12.5 + msvc2017安装记录
安装方法2:下载安装包进行安装,下载地址:https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools。 visual studio2017下载:https://visualstudio.microsoft.com/abdc8ae2-5707-40f8-8f43-79b04582d004。 qt安装包下载:https://download.qt.io/archive/qt/原创 2022-11-24 11:09:16 · 690 阅读 · 0 评论 -
错误记录:error: call to implicitly-deleted copy constructor
百度了很久,结果是因为自定义的结构体继承 QObject类,而QObject的子类不可复制。原创 2022-09-20 14:11:28 · 1986 阅读 · 0 评论 -
Qt::qcustomplot 和 qchart数据填充相关
总结一下qt 中图表添加数据的方法原创 2022-08-05 10:46:20 · 1026 阅读 · 0 评论 -
Qt::实现qtablewidget分页功能
大佬写得很棒,很简单就实现了qtablewidget的分页功能,但是不知道会不会有什么问题,现在看起来是没问题的。原创 2022-07-22 16:07:50 · 5348 阅读 · 4 评论 -
qt:在linux系统下创建快捷方式桌面图标
[Desktop Entry]Type=ApplicationTerminal=falseExec=/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreatorName=qtcreatorIcon=/home/Admin/图片/icon.png在桌面创建 xxx.desktop文件,然后输入上述内容,icon位置和exec位置根据自己的安装目录改变然后将xxx.desktop文件的权限更改:chmod 777 xx.desktop即可...原创 2022-05-26 15:02:21 · 995 阅读 · 1 评论 -
Qt::设置QGridlayout控件充满整个单元格
默认的控件就是填满单元格的,但是如果你设置了单元格中的对齐方式,控件就不会充满单元格, layout->addWidget(label, 0, 0, 1, 2, Qt::AlignHCenter);坑爹啊,想着设置一下对齐方式。。。。,结果控件就不能充满单元格了,搜了半天,最后还是看官方文档解决的...原创 2022-05-12 16:20:14 · 3168 阅读 · 0 评论 -
错误记录:lambda 中使用中遇到的坑爹错误
FtpManager * p = new FtpManager(this); p->SetHost("127.0.0.1", 21); p->SetUserName("anonymous"); p->SetPwd(""); p->SetPort(21); ui->tableWidget->setRowCount(1); ui->tableWidget->setColumnCount(3); Q...原创 2022-05-06 15:12:03 · 600 阅读 · 0 评论 -
sqlite3数据库外键的问题
sqlite3数据库的外键默认是关闭的,使用的时候需要用以下的语句启用:PRAGMA foreign_keys = ON;但是,问题在于,以后执行删除语句、插入语句或者更新,在需要外键限制的地方,都需要再次打开外键。我在执行删除语句之前,再次执行了上面的语句,但是没有生效。不知道是不是因为qt 的QSqlQuery 的query.ecec()一次只能执行一条语句。网上搜了一下,有两个方案:修改并重新编译sqlite3源码,使其默认开启,然后在qt中不适用...原创 2022-04-13 10:13:26 · 3426 阅读 · 0 评论 -
问题记录:Sqlite删除有外键的表的数据时提示:foreign key mismatch -
最后是因为,父表被字表设为外键的字段,未设置 unique,也不是主键原创 2022-04-08 09:35:58 · 1721 阅读 · 0 评论 -
Qt::QString::number()设置小数保存位数,QTableWidgetItem 取出 自定义data
1、QString::number设置小数保存位数原型:可指定格式和保存精度例如:QString::number(strDouble, 'f', 4);//保存为浮点型,4位小数格式有以下几种:2、QTableWidgetItem 使用 setData 保存自定义数据并取出setData()方法原型:使用示例: MyClass myClass; QTableWidgetItem * item = new QTableWidgetItem(myCl..原创 2022-03-31 11:15:22 · 4590 阅读 · 0 评论 -
Qt::QFileSystemWatcher监控目录或文件的改变
这里只演示了目录,当目录下新增目录、文件,或修改文件名、目录名,删除目录和文件时,都会触发信号。记录一下怎么使用参考:Qt 之 QFileSystemWatcher_一去丶二三里的博客-CSDN博客_qfilesystemwatcher代码#pragma once#include <QMainWindow>#include<QFileSystemWatcher>#include<QMap>QT_BEGIN_NAMESPACEnamespace原创 2022-03-18 14:43:53 · 610 阅读 · 0 评论 -
JavaScript 编码练习:利用一个按钮实现开始计时和停止计时
问题描述页面上有一个按钮,点击按钮开始计时,页面上显示经过了多少时间,再次点击计时停止。页面显示如下:<html> <head> </head> <body> <button id="start">Start</button> <p><span id="counter">0</span> elapsed second(s)</...原创 2022-02-23 11:27:59 · 2840 阅读 · 0 评论 -
Qt:QDataStream 的简单使用
这个类提供了对 QIODevice 是二进制数据的序列化。以下是官方的例子:向一个 stream 写入二进制数据 QFile file("file.dat"); file.open(QIODevice::WriteOnly); QDataStream out(&file); // we will serialize the data into the file out << QString("the answer is")...原创 2022-02-23 09:43:11 · 1018 阅读 · 0 评论 -
Qt:QString 中的 arg 函数用法
1、Qstring QString::arg() 用字符串变量一次替换字符串中最小数值 QString i = "a"; // current file's number QString total = "10"; // number of files to process QString fileName = "unkown"; // current file's name QString status = QString("原创 2022-02-17 14:47:46 · 12705 阅读 · 0 评论 -
Qt:自动添加注释
1、自定义模板 参考链接:QT中自定义注释模板整理_百里杨的博客-CSDN博客_qt注释 可以自定义格式,但是需要输入自己定义名称,如 header,才能自动联想2、/** 加回车 可以在类和方法和参数前面直接输入 /** +回车以生成注释,生成的注释的格式如下:方法的注释:类的注释:参数的注释:3、///加回车 使用方法和 2 一样,只是生成的格式不同,C++ 更推荐这种格式:...原创 2022-02-17 11:17:39 · 3226 阅读 · 0 评论 -
Qt|在可执行文件的目录下创建日志文件夹并写入日志
void Widget::writeLog(const QString logStr){//创建日志文件夹 QString filePath = qApp->applicationDirPath() + "/Log/"; QDir logDir(filePath); logDir.mkdir(filePath); QString fileName = filePath + QDateTime::currentDateTime().toString("yyyy-MM.原创 2021-12-17 15:11:27 · 624 阅读 · 0 评论 -
Qt|pro文件详解
1.注释 从“#”开始,到此行结束2.TEMPLATE 模板,告诉qmake为这个应用程序生成哪种makefile(1)、app——建立一个应用程序的makefile。默认值,如果没有指定模板,这个将被使用。(2)、lib——建立一个库的makefile。(3)、vcapp——建立一个库的VisualStudio项目文件。(4)、vclib——建立一个库的VisualStudio项目文件。(5)、subbdirs——这是一个特殊的模板,它可以创造一...转载 2021-11-15 10:49:35 · 699 阅读 · 0 评论 -
Qt|Layout布局相关,sizePolicy
enum QSizePolicy::Policy常量 值 描述 QSizePolicy::Fixed 0 QWidget::sizeHint()是唯一可接受的选择,因此小部件永远不能增长或收缩(例如,按钮的垂直方向)。 QSizePolicy::Minimum GrowFlag sizeHint()是最小的,也是充分的。部件...原创 2021-10-25 13:56:53 · 453 阅读 · 0 评论 -
Qt|layout布局相关,layout属性的含义及使用
各个参数的含义:Layout各个属性的含义 layoutName 布局的名称 layoutLeftMargin 子控件与布局控件的左边的空余空间大小 layoutTopMargin 子控件与布局控件的顶部的空余空间大小 layoutRightMargin 子控件与布局控件的右边的空余空间大小 layoutBottomMargin 子控件与布局控件底部的空余空间大小 layoutHorizontalSpacing 在布局控件中的子...原创 2021-10-22 09:58:50 · 3139 阅读 · 3 评论 -
Qt|总结几种在Linux系统下获取root权限的方法
本质上,都只是暂时获得root权限去执行,命令,一般是使用sudo但是sudo需要输入密码,下面是不用输入密码的办法 process->start(("sh -c \"echo "+password+" | 要执行的命令").toLatin1());原创 2021-10-21 15:53:13 · 3991 阅读 · 0 评论 -
Qt|代码规范及调试记录
注意函数和变量命名函数名:大驼峰命名法,首字母全部大写变量:私有变量:首字母大写,前面用_全局变量:首字母大写,前面用_局部变量:首字母小写,后面首字母大写等号前后,以及逗号前后可以打空格,以及其他符号前后都应该打空格new的对象如果不用记得delete ,或者使用全局对象使用了定时器判断是否超时,应该改变失败标志...原创 2021-10-19 16:44:15 · 108 阅读 · 0 评论 -
Qt|NTP同步时间遇到的问题记录
1.没有真的加上时差QDateTime QDateTime::addMSecs(qint64 msecs) constReturns a QDateTime object containing a datetime msecs miliseconds later than the datetime of this object (or earlier if msecs is negative).If this datetime is invalid, an invalid datetime wil原创 2021-10-14 17:10:49 · 333 阅读 · 0 评论 -
Qt|QEventLoop事件循环的使用
我看不懂,但我大受震撼一般事件循环都是由exec()开启,比如:1 QCoreApplicaton::exec()2 QApplication::exec()3 QDialog::exec()4 QThread::exec()5 QDrag::exec()6 QMenu::exec()这些都开启了事件循环,程序在exec()里无线循环,被阻塞,让跟在exec()后面的代码得不到运行机会,直到程序冲exec()中跳出。从exec()跳出时,事件循环即被终止。QEventLoop原创 2021-10-09 16:56:07 · 955 阅读 · 0 评论 -
Qt|QMessageBox的简单用法
每次使用都要去百度一下,今天记录一下最简单基础的使用 QMessageBox box(QMessageBox::Critical,"标题","提示语"); box.setStandardButtons (QMessageBox::Ok); box.setButtonText (QMessageBox::Ok,QString("确 定")); box.exec (); ...原创 2021-09-27 15:51:03 · 257 阅读 · 0 评论 -
Qt|解析NTP报文时间戳,并计算时差和延迟,利用时差同步时间
NTP报文的格式如下:LI 闰秒标识器,占用2个bit。0 即可。VN 版本号,占用3个bits,表示NTP的版本号,现在为3Mode 模式,占用3个bits,表示模式。 3 表示 client, 2 表示 serverstratum(层),占用8个bits。不清楚怎么用Poll 测试间隔,占用8个bits,表示连续信息之间的最大间隔。不清楚怎么用Precision 精度,占用8个bits,,表示本地时钟精度。 不清楚怎么用Root Delay根时延,占用8个bits,表示在主参考源之间原创 2021-09-23 17:11:24 · 3570 阅读 · 7 评论 -
Qt|QCombobox添加item存储用户自定义数据作为索引
QCombobox可以很简单的addItems();函数原型:void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())第一个参数是会显示在选项中的QString,第二个选项是用户自定义数据如果数据是存储在数据库中,那么为了对数据项进行操作,需要根据每一项的id进行那么就需要把id存入每一项中 int id=query.value(0).toInt();原创 2021-09-23 16:21:30 · 3669 阅读 · 0 评论 -
Qt|问题记录,“无法解析的外部符号 未找到文件 ***.obj”
今天又遇到这个问题,看了这篇文章,转载 2021-09-17 11:16:59 · 1083 阅读 · 0 评论 -
Qt|给Qt应用程序添加图标(Windows&Linux)
Qt设置程序图标(Linux&&Windows)_左霖风的博客-CSDN博客_qt设置icon转载 2021-09-17 09:58:33 · 652 阅读 · 0 评论 -
Qt|QtConcurrent——run()函数的两种写法
第一种,使用lambda表达式 QFuture<void> future = QtConcurrent::run([=]() { // Code in this block will run in another thread }); ... 第二种,使用成员函数 调用QByteArray的成员函数split() // call 'QList<QByteArray> QByteArray::split(char sep) cons...原创 2021-09-14 17:25:46 · 1364 阅读 · 0 评论 -
Qt|connect()的第五个参数的含义
QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)函数原型是上面这个。第五个参数默认是Qt::AutoConnection,一般不用写,就用默认的就行类型 value ...原创 2021-09-14 15:00:55 · 243 阅读 · 0 评论 -
Qt|跨平台时需要注意的地方
如果在不同系统中,语句有所不同 #ifdef linux 语句#elif win32 语句#endif #ifdef Q_OS_UNIX# include <sys/time.h>#elif (defined Q_OS_WIN)# #include "windows.h"#endif原创 2021-09-10 16:56:05 · 239 阅读 · 0 评论 -
Qt|pro文件、pri文件的写法
1、pro文件概述.pro文件中,主要包含以下变量:变量 含义 CONFIG 一般项目配置选项 DESTDIR 放置可执行文件或二进制文件的目录 FORMS 由用户界面编译器(uic)处理的ui文件列表 HEADERS 构建项目时使用的头文件(.h)列表 QT 项目中使用到的Qt模块列表,比如sql、network RESOURCES 项目中包含的资源文件(.qrc)列表 SOURCES 构建项目时要使用的源代码(....转载 2021-09-10 16:39:30 · 1114 阅读 · 0 评论 -
Qt|QTimer动态倒计时显示距离下一次任务执行剩余的时间
用到了定时器QTimer,这里定的间隔是1s,我用lcdnumber以s为单位,动态显示了距离下一次触发timeout()信号还有多长时间。主要思路:多久执行一次任务,是用户输入的间隔intval 用当前时间QTime::currentTime()和baseTime之间的时间差,计算距离下一次任务的剩余时间主要代码://同步时间void on_btnGet_clicked(){ this->baseTime=baseTime.currentTime();//基准时间...原创 2021-09-10 14:56:26 · 1573 阅读 · 0 评论