Qt
lesliefish
不要停歇、不回头
展开
-
Could not start process “make” qmake_all
Ubuntu 64位Qt生成错误Could not start process “make” qmake_allError while building/deploying project Calculator (kit: Desktop Qt 5.10.0 GCC 64bit)When executing step “qmake”解决办法:In terminal:sudo apt-get install build-essentialIf you get Cannot find -lGL转载 2021-06-03 11:26:54 · 1338 阅读 · 1 评论 -
Qt客户端模拟web端通过表单方式上传图片-QHttpMultiPart
这里写自定义目录标题背景背景在一个项目中,对接一个阿里云分享图片接口,此前已有安卓客户端通过web页面上传自己的本地图片到服务端(使用的okhttp),C++使用Qt相关库也是可以完成的。完整测试上传代码如下:#include <QtCore/QCoreApplication>#include <QFileInfo>#include <QHttpMult...原创 2020-03-10 17:41:21 · 871 阅读 · 0 评论 -
使用Qt生成二维码
首先需要包含二维码相关源文件(博文末尾有完整工程链接),然后在窗口中绘制即可,先上效果图主要代码如下:void QRCodeDemo::paintEvent(QPaintEvent *event){ QRcode *qrcode; qrcode = QRcode_encodeString(m_strCodeString.toStdString().c_str(), 2, Q...原创 2020-01-03 10:48:07 · 1073 阅读 · 3 评论 -
关闭窗口windows触摸反馈 API接口 关闭触摸小圆圈效果
使用SetWindowFeedbackSetting接口头文件#include <Windows.h>#include <WinUser.h>反馈类型:typedef enum tagFEEDBACK_TYPE { FEEDBACK_TOUCH_CONTACTVISUALIZATION, FEEDBACK_PEN_BARRELVISUALIZATION,...原创 2019-12-29 16:17:55 · 1128 阅读 · 1 评论 -
Qt 清空目录,删除文件夹及其子文件夹、子文件
为了把那些写循环遍历的文章压下去,添加此一篇,各位帮忙点赞顶上去,别用循环遍历了,多看看Qt文档 QString path = "D:\\file\\test"; QDir dir(path); dir.removeRecursively();...原创 2019-12-05 14:44:13 · 5455 阅读 · 3 评论 -
QML界面装载进QQuickWidget后触摸失效问题
在Win7系统上运行程序,发现触摸事件失效,需要在QQuickWidget中设置接收触摸:setAttribute(Qt::WA_AcceptTouchEvents);原创 2019-11-29 10:06:02 · 1205 阅读 · 1 评论 -
QML color 转json存储问题
使用QML做一个项目,需要保存控件的color值到配置文件,并能从配置文件中重新获取。颜色赋值color:"#FFFFFF", 转成json保存,写代码如下: var json = {}; json["color"] = rect.color; console.log(JSON.stringify(json));打印结果竟然是:{ "...原创 2019-11-24 16:34:45 · 523 阅读 · 0 评论 -
Qt 圆角窗口的实现、想让哪个角圆就让哪个角圆
今天一个同事为一个窗口视觉的圆角愁了一天。。视觉要求窗口只有上半部分是圆角,下半部分是直角,还需要半透明。那单靠我们的QPainter类的drawRoundedRect方法就不能实现了,因为这个画出来的圆角是4个。想必肯定有刚接触Qt的同学们都多少有点纠结,那今天咱就写一篇关于窗口中4个角怎么任意实现各个圆角的实现方案吧。完整工程代码路径如下(vs2015+Qt5.9.6):完整工程路径...原创 2019-11-08 21:27:59 · 3861 阅读 · 4 评论 -
QML实现圆环颜色选择器
话不多说,先上效果图:组件代码如下,有问题可以留言:import QtQuick 2.0import QtQuick.Controls 2.2Item { id:baseItem width: 350 height: width signal colorChanged(string newColor); property int circleWid...原创 2019-09-22 15:54:02 · 1775 阅读 · 0 评论 -
QML Tumbler开发实践--字体选择循环列表
先上效果图:完整项目路径:https://github.com/lesliefish/QMLInAction/tree/master/demos%26projects/Components单独组件代码:import QtQuick 2.0import QtQuick.Controls 2.2Item { id : fontSelector; height: 300...原创 2019-09-19 09:59:25 · 1452 阅读 · 0 评论 -
Qt实现移动端Toast提示消息
先上具体的实现效果图:弹出提示后,提示框在一定时间内消失。程序程序头文件定义:/** @file Toast.h * @brief Qt模拟安卓移动客户端Toast提示消息 * @note qss set in ui file * @author lesliefish * @date 2019/05/31 */#pragma once#includ...原创 2019-05-31 12:48:41 · 3986 阅读 · 1 评论 -
Qt 操作读取sqlite数据库信息,表名,表数据,字段类型
定义一个容器存放数据库中表信息数据:static std::map<QString, std::vector<std::vector<std::tuple<QVariant::Type, QString, QString>>>> read(const QString& name); // 表名 //表数据vecto...原创 2019-05-12 21:34:37 · 5186 阅读 · 0 评论 -
Qt 静态回调函数访问类成员变量解决办法
Qt 静态回调函数访问类成员变量解决办法 总结起来就是: 定义一个静态指针pThis,构造函数中将其指向this指针.代码示例: 头文件:#ifndef TEST_H#define TEST_H#include <QtWidgets/QMainWindow>#include "ui_test.h"#if defined _WIN32 || define...原创 2018-03-04 12:38:39 · 4112 阅读 · 3 评论 -
QQ好友列表的实现(QQ9.0版本样式) -- 使用QTreeView
这里写自定义目录标题最终实现效果:基本功能最终实现效果:以上是实现的最终样式,自己电脑上安装的QQ9.0版本,就按这个版本来了。基本功能实现的一些基本功能总结:分组展示好友列表 ,一个组下多个好友;Item上绘制头像、在线状态、个性签名、用户名+昵称(依据是否VIP设置成不同颜色)、视频通话图标;头像、在线状态、视频通话图标采用svg图标格式hover效果,鼠标移至Item不同...原创 2019-02-09 11:49:25 · 2616 阅读 · 0 评论 -
Qt5中QWebEngineView的使用,让桌面客户端和web端友好通信
本文结构1、 Qt5中web开发的基本配置,工程搭建2、 加载HTML文件3、 Qt界面窗口调用HTML中的JavaScript函数(Qt调用js)4、 Qt界面窗口获取HTML中Js函数的返回值5、 Web端消息主动通知到Qt界面(js通知Qt)6、完整源码路径基本配置,工程搭建(1) Qt安装时要安装web开发组件,本案例采用Qt5.9.6 vs2015开发环境(2) 新建...原创 2018-12-02 12:38:16 · 25971 阅读 · 15 评论 -
在Qt程序中使用C++11线程std::thread处理耗时操作
Qt界面程序通常什么情况下要使用到线程? Qt界面程序在调用接口处理时间较长的任务时(如连接网络、复制文件等等耗时操作),界面在等待接口返回前会导致卡死。为了不让界面卡死,可以使用一个子线程来处理耗时任务,关于QThread的线程在这里就不介绍了,本文讲的使用std::thread来快速方便解决这个问题。解决问题思路1、现代大部分C++编译器已经支持C++11 的自带线程类std::...原创 2018-09-02 12:32:08 · 9095 阅读 · 0 评论 -
Qt操作Excel错误:QAxBase: Error calling IDispatch member WorkSheets: Unknown error
升级office2016后出现上述情况。我这边出现这个主要是在操作表的时候,Excel表格突然弹出激活、许可协议等信息等造成的。激活工具激活office后就好了。原创 2017-10-21 21:13:27 · 10987 阅读 · 1 评论 -
Qt Excel表格列数转换为26进制字母表示
Excel表格的列数是用26进制A1、B2、C3、D4….Z26、AA27、AB28、AC29..表示的,为程序处理方便,第29列可表示为AC,十进制数转换为字符串的代码如下:QString ConvertFromNumber(int number){ QString resultStr = ""; while(number > 0) { int k = n原创 2017-10-22 19:05:11 · 2491 阅读 · 0 评论 -
Qt5对Excel表格简单、高效处理方法
由于经常用Qt对Excel中的一些数据进行处理,最终综合出一套简单好用的读、写数据方案,主要代码如下: QAxObject *excel = NULL; //本例中,excel设定为Excel文件的操作对象 QAxObject *workbooks = NULL; QAxObject *workbook = NULL; //Excel操作对象 excel = n原创 2017-10-21 21:24:37 · 37573 阅读 · 30 评论 -
Qt 字符串设置固定宽度,前位补0
使用场景对数据等的编号,为了对齐,常常会用0001,0002,….,1001等表示,在Qt中用QString可以进行相关转换操作,还能对十六进制、二进制等转换。代码如下:#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv);原创 2017-10-31 22:23:19 · 9102 阅读 · 0 评论 -
QDateTime 指定语言,显示时间日期等信息
QDateTime 默认根据系统语言进行对应语言的相关转换。在设置区域为中文的操作系统中直接调用以下函数:QDateTime dateTime = QDateTime::currentDateTime();QString strDateTime = dateTime.toString("dd.MM.yyyy, ddd MMMM d yy, hh:mm:ss.zzz, h:m:s ap");qDe原创 2017-10-15 13:11:27 · 10533 阅读 · 2 评论 -
QTableView表头填满控件,表头对齐
关于QTableView表头美化、对齐的问题经常操作QTableView,遇到表头无法对齐所在容器的情况,如下图所示:,当表头不能和QTableView控件宽度一致时,及其影响美观。解决办法在QTableView里ui->tableView->horizontalHeader()->setStretchLastSection(true)可以让最后一列填充整个表头: 效果如下: 另外均分填充表头采原创 2017-11-09 22:34:53 · 18311 阅读 · 5 评论 -
Qt自定义控件以及控件的提升
关于在使用Qt做界面时,通用、常用的控件重复设置属性是件麻烦的事情,比如密码输入框,一个密码输入框要设置许多属性,比如密文显示,长度,只能输入固定字符类型,禁止复制等等,一个项目里面有时会用到很多密码框,每设置一个密码框就会导致对上面的属性重复设置,会导致效率低下,最终规范还不统一等问题。自定义一个控件,继承自QLineEdit类,如下代码: 控件头文件PasswordLineEdit.h#ifn原创 2017-11-05 19:13:37 · 25051 阅读 · 17 评论 -
QTableView表头添加QCheckBox复选框
关于本文主要讲如何给表格QTableView表头添加复选框,搜集文档网络发现并不能直接设置表头复选功能,普遍采取一种继承QHeaderView,重写paintSection方法实现一个QHeaderView的子类。子类头文件 HeaderView.h源码如下:#ifndef HEADERVIEW_H#define HEADERVIEW_H#include <QObject>#include <Q原创 2017-11-13 23:21:28 · 11489 阅读 · 3 评论 -
QT线程池的使用:QThreadPool类和QRunnable类
目录QThreadPool类主要属性主要成员函数QRunnable类主要成员函数程序实例QThreadPool类用来管理 QThreads。此类中的所有函数都是线程安全的.主要属性:1、activeThreadCount: 此属性表示线程池中的活动线程数,通过activeThreadCount() 调用。 2、expiryTimeout: 线程活着的时间。没有设置expiryTim原创 2017-11-26 16:08:38 · 33213 阅读 · 11 评论 -
在Qt中使用回调函数替代信号槽
前言在Qt中传数据,我们使用了一个信号和槽系统,但这并不意味着不能使用旧的经过验证的方法,即使用 CallBack回调函数功能。 事实上使用 CallBack 功能比信号和槽要快一些。并且当发送信号的对象在程序中被销毁并且不再使用时,就信号理想地从槽中分离而言,回调可以更容易使用。如何使用CallBack工作假设A类包含B类的对象,B类有动作时想要通知到A类,B类应该有个设置回调...翻译 2018-06-21 14:22:32 · 14166 阅读 · 7 评论 -
Qt 只运行一个程序实例 -QLockFile -QSystemSemaphore 和 QSharedMemory
前言每次只运行应用程序的一个实例可能是必要的,以限制内存泄漏的问题,或者消除某些资源,文件,SQLite数据库等应用程序的两个实例之间的竞争问题。或者,原则上,应用程序只需要用户使用一个副本就行了。有两种方法可以用来解决这个问题:1、使用QLockFile当一个临时文件被创建时,当应用程序关闭时清除这个临时文件。因此,在应用程序的第二个实例启动时检查该文件是否已经创建了一个打开...翻译 2018-06-26 14:13:42 · 4583 阅读 · 1 评论 -
ubuntu系统启动qtceator时提示:Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库
在ubuntu系统下安装好qt5.5后启动qtceator时提示: Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so:(libgstapp-0.10.so.0: 无法打开共享对象文件: 没有那个文件或目录)解决转载 2016-10-23 23:04:06 · 5699 阅读 · 3 评论