- 博客(43)
- 资源 (5)
- 收藏
- 关注
原创 使用DeepSeek查找资料:C++ sprintf % 种类
同样,对于size_t类型,可能需要用%zu,但如果在不支持C99的情况下,可能需要转换类型。是的,在C99中,%F是另一种浮点数的格式,和%f类似,但用大写字母表示INF和NAN,比如INFINITY会显示为INF而不是inf,科学计数法中的指数用E,例如同%E类似?每个说明符可能有不同的修饰符来指定长度,比如l、ll、h等,例如%lld对应long long,%lf对应double(在scanf中需要%lf,但在printf中,%f和%lf都用于double,因为float会被提升为double)。
2025-03-21 14:20:22
617
原创 C++生成动态和静态链接,以及调用方法(手把手教程)
2、将FactoryMethodMode.lib和FactoryMethodMode.dll文件拷贝到编译目录下,需要注意的是如果UseDllTest使用Debug编译,那就拷贝FactoryMethodMode项目中Debug生成的库文件,如果UseDllTest使用Release编译,那就拷贝FactoryMethodMode项目中Release生成的库文件,否则混用的话可能有些问题。2、代码中可看到自动生成了dllmain.cpp文件,里面的DllMain函数是主入口函数。三、调用动态、静态链接库。
2025-03-21 12:03:52
414
原创 QThread::wait: Thread tried to wait on itself
由于使用的是MyObjec::deleteLater()函数,MyObjectt的析构函数是在子线程中执行的,子线程的退出也是在子线程中执行的,因而报警,且线程退出失败(没有执行。由此可见,子线程的退出操作是在主线程中完成的,不仅没有报错,而且线程也成功退出了(执行了线程退出槽函数)由此可见,主线程的线程ID为0x43f4,子线程的线程ID为0x2790。解决方法:在线程外的其他线程中,调用线程的wait()方法。原因:在自己的线程中调用线程的wait()方法。
2024-08-05 22:50:54
882
原创 Qt:关闭对话框,动画实现窗体逐渐缩小到消失
QPropertyAnimation对象,实现动画效果,逐渐缩小窗体尺寸,以及透明度;2、在对话框缩小时,要将界面中的控件都隐藏起来,并且将对话框布局的Margin修改成0。
2023-10-29 21:48:52
934
原创 Qt:删除QWidget中的所有布局和组件
3、QLayout::itemAt(int index) 可根据索引获取相应的子项;2、QLayout::count() 可获取布局内的子项数量,包括子布局和子组件;1、调用QWidget::layout()可获取组件的布局;*widget) 可将某个组件从布局中移除。
2023-10-29 19:41:38
3999
原创 QLineEdit 不显示右键菜单,以及屏蔽鼠标选中文本
鼠标右键编辑框内时,会弹出系统默认的右键菜单,很多时候我们不需要,或者想使用自己设计的菜单,常见的方法就是重写QLineEdit类,修改它的事件处理。如果屏蔽掉鼠标双击或拖动时选中编辑框内的文本,只需重写它的一些鼠标事件即可。
2023-05-20 00:12:51
1133
原创 QListWidget与QTreeWidget的用法
1、dialog.h:头文件#ifndef DIALOG_H#define DIALOG_H#include <QDialog>#include <QLabel>#include <QLineEdit>#include <QTextEdit>#include <QPushButton>#include <QListWidget>#include <QTreeWidget>class Dialog
2022-05-12 00:33:28
371
原创 Qt 5.9打包后sqlite运行错误:Driver not loaded
今天打包Qt程序后,运行exe,报了一个奇葩的错误:Driver not loaded乍看之下,是数据库驱动没有加载,但我在程序调试中,Debug和Release都没问题,在网上找了一圈答案后,也没有解决我的问题。网上的答案无非两种:1、代码写的有问题;2、打包的文件夹中没有qsqlite.dll等文件,这里就不详述。折腾了半天,才发现了问题的所在:1、我的程序中,数据库文件是代码自动创建的,代码大致如下: QSqlDatabase sqlDB; sqlDB = QS
2021-12-14 18:33:38
2343
2
原创 数字范围正则表达式
软件开发中,需要限制编辑框的数字范围,网上搜了一些,要么漏洞很多,要么不完善,于是博主重新学了一些正则表达式的语法。不多废话,请看正题:1、[0,255]范围内的正则表达式:^[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|(25[0-5])$解析:这个范围IP地址中会用到,如果写成^[0-2][0-5]{2}$那就大错特错了,不仅会取000这样无意义的数值,还不能输入39、166等数字。上述表达式虽长,但是分段看就很简单,将其分成5个区间:取值范围
2021-12-13 12:04:08
8760
3
原创 qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it was found.This appl
今天在Linux系统卸载了Qt 5.9, 然后安装Qt 5.12, 结果运行qtcreator时,报如下错:后来查阅才知道, 是libxcb-xinerama0没有安装, 在终端输入以下命令即可解决问题:sudo apt-get install libxcb-xinerama0感谢链接中的博主:https://blog.youkuaiyun.com/u012308586/article/details/108509503...
2021-09-02 11:15:10
796
原创 Qt 版Word多文档编辑与处理(完整版)
微软的Office Word软件是一款通用的文字处理软件, 其功能非常强大, 但它是如何实现的呢? 本文怀着这样的想法, 用Qt开发出与之功能类似的文字处理软件.(当然了, 我只实现了一些基本功能, 读者们可根据本文的思路,对该软件的功能进行扩展), 请先看软件运行结果:(注: 在Linux运行Qt程序时, 只有将界面最大化, 才能在左上角看见菜单.)实现该软件的核心点:1. QMdiArea 类: 它是实现多文档操作的关键类, 通过向QMdiArea中添加子窗口,可操作多个子...
2021-08-25 16:56:02
2468
原创 Qt制作一个相册浏览工具
如何用Qt制作一个相册浏览的小程序? 程序开发思路如下:1.支持多张相片浏览,可翻页浏览,相片可从本地导入;2.相片要有放大和缩小的功能;3.相片可自动浏览,时间间隔可自定义.主要的代码如下:1.相片的导入void MainWindow::onBrowse(){ QString picFormat = tr("Images(*.png *.jpg *.jpeg *.bmp *.ico *.tif *.gif)"); QFileDialog fDlg(this, t
2021-08-19 10:34:53
678
原创 Qt模拟分子扩散与碰撞
假设某个封闭容器内有若干个分子,每个分子的颜色都不同,它们在容器内无规则的扩散,如何实现这个功能? 解决方案如下:1. 容器可视为一个QWidget对象,每个分子可用一个圆点表示,它的结构体数据如下:struct SColorCircle{ SColorCircle(QPoint pt, Qt::GlobalColor clr) : _pt(pt), _color(clr) {} QPoint _pt; int
2021-08-19 10:21:01
201
原创 C++11: 枚举类ostream
在传统的C++中,枚举类型并非类型安全,它可视为整数,不同的枚举类型可直接进行比较,且不同类型的枚举值i名称不能相同,这时常给枚举值取名带来困扰.C++11引入了枚举类(enumaration class),并使用enum class的语法进行声明. 枚举类是类型安全的,它不能被隐式转换为整数,也不能与整数进行比较,更不能对不同枚举类型的枚举值进行比较,但同一个枚举类中的枚举值可进行比较.枚举类中的枚举值不能直接通过 << 进行输出,需显式的进行类型转换,转换成整数后方可,也可通过重载
2021-08-13 14:27:51
389
原创 Qt生成二维码(源码可下载)
用Qt 开发生成二维码的工具,步骤如下:1. 下载Qt开源代码qrencode(GitHub中可搜到)2. 编写一个继承QWidget的二维码类,重写该函数:void paintEvent(QPaintEvent *event) override3.在主窗体中测试生成的二维码,测试结果如下:源码下载路径如下:https://download.youkuaiyun.com/download/ouyangxiaozi/21044215...
2021-08-13 14:00:57
417
原创 QPalette的详细使用示例
1. 功能简介:QPalette是Qt中的调色板类,它提供的setColor()函数可改变控件的颜色,其原型为:void QPalette::setColor(ColorRole acr, const QColor &acolor)其中, ColorRole是个枚举,指的是颜色主题,QPalette::Window是指背景色,QPalette::WindowText指的是前景色, QPalette::Button指的是按钮的底色...2. 实例新建一个Qt Widgets Ap
2021-07-29 10:38:13
5805
1
原创 Qt获取Linux终端命令数据
用Qt新建一个无窗体的工程后,用代码的方式创建控件和布局,左边的编辑框为Linux命令,右边的为命令的执行结果,经验证,与终端执行结果一样,代码如下:1. mainwindow.h 文件代码:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QLabel>#include <QPlainTextEdit>#include <QPushButton>
2021-07-22 18:39:34
1954
原创 C++:自定义函数数据类型转换
主要代码如下://获取字符串的长度函数(每个汉字2个字节长度)int GetStringLength(string str){ int ret = 0; int i = 0; while (auto sss = str[i++] != '\0') { ret++; } return ret;}//double转化为字符串函数string DoubleToString(...
2018-02-08 14:16:55
1146
原创 C++:利用模板类进行若干排序算法
template class CSort{public: CSort(int nArraySize); virtual ~CSort(); void Bubble(T arr[]); //冒泡排序 void insertion(T arr[]); //插入排序 void Quick(T arr[]
2017-05-05 16:50:14
862
原创 C++:操作符重载
#include using namespace std;class Complex{public: Complex(double r = 0, double i = 0) : _real(r), _imag(i) { } double GetReal() { return _real; } double GetImag() { return
2017-05-05 13:30:26
259
原创 MFC:error MSB8008: 指定的平台工具集(v141)未安装或无效。请确保选择受支持的 PlatformToolset 值
最近装了VS 2017,不知是何原因,用VS 2010 打开之前的项目时,报了如下错误:error MSB8008: 指定的平台工具集(v141)未安装或无效。请确保选择受支持的 PlatformToolset 值。解决方法:打开项目配置-->常规-->平台工具集,选择v100(原来工具集里没有v141项)。修改完后重新编译就OK了。
2017-04-18 10:34:49
29921
Qt 桌面数字电子钟(可拖曳)
2021-08-25
Qt 版Word多文档编辑与处理(完整版)
2021-08-25
Qt相片浏览(支持导入相片,相片放大和缩小,自动浏览等功能)
2021-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人