qt
文章平均质量分 55
金色熊族
这个作者很懒,什么都没留下…
展开
-
冒泡排序的C++语言实现(不用std::sort)
自己写一个冒泡排序的代码。原创 2024-09-17 17:58:07 · 223 阅读 · 0 评论 -
比较stl库的ostringstream与Qt的QString::arg(),QString::number()
对于stringstream,使用比较繁琐,要联合使用std::fixed和std::setprecision才能实现固定小数位数显示,qstring则要简单一些。注意,使用qstring的时候,不论使用arg还是number,format输入参数都必须是'f',不能用'g',否则可能无法获得理想的效果。考虑STL库的ostringstream或者Qt的QString::arg(), number。显示一个float或者double类型的数,要求小数点后的数字位数为定值。原创 2024-09-11 22:07:56 · 425 阅读 · 0 评论 -
QCustomPlot示例
QCustomPlot提供了丰富的功能用来将数据显示为图。这里提供一个实例,展示如何显示曲线。并提供代码下载原创 2023-04-02 15:03:14 · 134 阅读 · 1 评论 -
QSqlRelationTableModel使用示例
QSqlRelationTableModel使用示例原创 2022-11-06 16:12:27 · 874 阅读 · 0 评论 -
Qt将GeoJson文件转为mif文件的示例
Qt将GeoJson文件转为mif文件的示例原创 2022-11-02 15:32:16 · 653 阅读 · 0 评论 -
qt使用QProcess实现进程通信
qt使用QProcess实现进程通信原创 2022-10-27 17:54:26 · 1989 阅读 · 0 评论 -
设置QTableView的内容自动换行(2)
设置QTableView的内容自动换行,采用代理方式原创 2022-09-25 10:58:03 · 3104 阅读 · 5 评论 -
如何设置编辑QTableView单元格时的字体颜色
如何设置编辑QTableView单元格时的字体颜色原创 2022-09-24 21:52:32 · 2311 阅读 · 0 评论 -
检查OpenGL的版本
本文介绍如何在Qt框架下获取OpenGL的版本原创 2022-09-18 12:05:39 · 2873 阅读 · 0 评论 -
设置QCheckbox 样式的注意事项
基于qt的程序,演示了如何通过setStyleSheet配置checkbox按钮的外观。原创 2022-06-25 17:53:45 · 2648 阅读 · 0 评论 -
警惕C/C++同名函数冲突
想象这样一个情景,一个大项目,由两个彼此并不熟悉的企业合作完成。最后的交付软件是一个exe以及两个dll。两个企业各自负责一个dll。巧合的是,两个企业开发时,都依赖同一个第三方库,比如说,是opencv。但是,双方使用opencv的版本不同。由于两个opencv的dll名字不同,所以它们不会覆盖,而是共存(但是它们的头文件都是一样的)。这样带来一种假象,就是dll1和dll2将各自调用各自的opencv库。但事实并非如此。实际上,在链接时,先被链接的dll的函数将覆盖后面的同名函数。目录库原创 2022-05-22 20:55:05 · 1183 阅读 · 0 评论 -
VS2013 + Qt5.7编译ctk源码过程记录
网上介绍如何编译ctk框架的文章很多,大多数主张改ctk的源码,然后编译。我尝试了其中一个比较详细的介绍,发现走到install这一步总是失败。尽管install这一步不是必须的,但是总给人不圆满的感觉。另有一篇文章编译 CTK(Win10 + Qt 5.14.0 + VS2015)_blackwood-cliff的博客-CSDN博客_ctk编译,几乎不改源码,只是用cmake-gui配置一下,然后就能完成包括install在内的所有项目编译。我用vs2013尝试了,可行。这里把我的操作记录一下,并且补原创 2022-05-04 15:00:59 · 2642 阅读 · 0 评论 -
利用QSettings读取ini文件
ini文件的格式一般为:(以配置IP地址为例)[IP]OwnAddr1=....OwnAddr2=....下面的代码从IP片段中分别读取OwnAddr1和OwnAddr2,放入各自的QString中QSettings iniReader(QApplication::applicationDirPath()+"/xxx/yyy.ini",QSettings::IniFormat); iniReader.setIniCodec(QTextCodec::codecForName.原创 2022-05-01 14:23:54 · 492 阅读 · 0 评论 -
linux平台下通过Qt修改系统日期时间
目录操作权限date与hwclock代码效果在超级用户权限下,使用date MMddhhmmyyyy.ss实现时间校正。由于Qt提供QProcess来执行shell命令,所以你也可以通过Qt编程来实现修改系统时间。操作权限遇到用户权限的问题,利用以下命令一次性完成,不用人工再输入用户密码:(类似用法见linux系统下添加IP的过程记录_liji_digital的博客-CSDN博客)echo "密码" | sudo -S 具体指令date与hwclockd原创 2022-05-01 14:15:27 · 4417 阅读 · 0 评论 -
Qt读取xml文件,并写入另一个xml文件的示例
下面的代码利用Qt的QDomDocument等类来读取xml文件exm.xml,并写入另一个文件exm2.xml代码:#include <QDomNode>#include <QDomElement>#include <QDomDocument>#include <QFile>#include <QDebug>#include <QDomProcessingInstruction>int main(int a原创 2022-05-01 14:18:55 · 1025 阅读 · 1 评论 -
qss配置QComboBox的注意事项
目录1 QComboBox的文字颜色不能简单的用color设置。而要在qss中同时设置padding。2 QComboBox的下拉选项列表文字要通过QComboBox QAbstractItemView结合设置。1 QComboBox的文字颜色不能简单的用color设置。而要在qss中同时设置padding。padding是几不重要,只要设了,color就起作用。这是qt的一个bug。QComboBox { /* 边框宽度,线条样式,颜色 */ border:3原创 2022-04-26 21:30:03 · 1572 阅读 · 0 评论 -
利用assimp显示gltf
目录1 编译assimp5.0.12 工程2.1 pro文件:2.2config.h2.3config.h.in中注释掉如下代码:3 运行效果1 编译assimp5.0.1编译过程与我的博客win10操作系统上编译assimp库_liji_digital的博客-CSDN博客描述类似。但是由于assimp5.0.1的版本较高,vs2013编译源码会报错。错误原因是BaseImporter::importerUnits采用了初始化列表赋值,不受2013支持。假如你坚持使用..原创 2022-04-25 22:50:15 · 1491 阅读 · 0 评论 -
QTabWidget样式设置注意事项
代码示例见定制QWidget标题栏的示例,并含有qss配置QTabWidget样式的示例-QT文档类资源-CSDN下载先看qss文件:QTabWidget::pane {/*修饰tab页的主体*/ background: transparent; border-image: url(./pic/tab_purple.jpg); border: 2px;} QTabBar::tab {/*修饰tab页表头*/ background: transparent; backgr原创 2022-04-24 20:52:08 · 3302 阅读 · 0 评论 -
Qt主线程等待的正确方法
以前自己让Qt主线程等待的办法就是用QThread::msleep()。但这是不对的。这样做的问题是,msleep期间主线程不能响应用户的操作,处于“死机”状态。根据https://www.twblogs.net/a/5b96b6182b717750bda550bdhttps://www.twblogs.net/a/5b96b6182b717750bda550bd的说法,应采用QElapsedTimer结合processEvents()来实现等待。以下是我尝试的代码:#include "mai原创 2022-04-17 19:26:49 · 3297 阅读 · 0 评论 -
定制QWidget标题栏的示例
在很多项目里,客户不满意qt自带标题栏的外观,要求开发者自定义一个窗体样式。新的窗体标题栏的背景色可以通过qss定义,且最大化、最小化、关闭三个按钮的位置外观乃至功能都可以定制。本文介绍如何定制这样的标题栏,标题栏只有关闭窗口,且用户可以通过标题栏实现窗体的移动。示例代码见我的资源。1 主要代码:#include "WgtWrapper.h"#include "ui_WgtWrapper.h"#include <QDebug>#include <QMouseEvent>原创 2022-04-10 16:21:54 · 4097 阅读 · 0 评论 -
linux系统下添加IP的过程记录
目录1 初级2 中级3 高级1 初级在shell中通过 ifconfig 网卡名:数字 新增IP netmask 255.255.255.0 up 来实现添加注意,必须在超级用户权限下执行上述命令,否则添加失败这样做的缺点是,每次计算机重启,新加的IP又失去了。2 中级假如我有一个Qt程序,要用到新添加的IP。为了避免重启后新加的IP失去,我可以在每次调用Qt程序时,通过qprocess来执行shell命令:int main(int argc, char *ar原创 2022-04-08 20:17:34 · 1296 阅读 · 0 评论 -
第一次在Qt中编译cuda(ubuntu平台)
因工作需要,我要在ubuntu20.04上编译cuda,且用到Qt。编译过程的要点如下:1 cuda的头文件不需要是cuh为扩展名,普通的.h文件即可2 在pro文件里,你会看到这两句:SYSTEM_TYPE = 64CUDA_ARCH = compute_6164表示64位程序;compute_61指的是nvidia显卡的compute capability,与显卡型号有关。...原创 2022-01-12 20:45:19 · 1545 阅读 · 5 评论 -
gdal无法读取中文标题的图片的解决办法(结合Qt)
gdal是gis领域一款常用的软件。但是如果图片的名称含有中文,gdal就难以将其打开。网上有许多帖子针对这个问题,比如https://blog.csdn.net/liminlu0314/article/details/6610069但是经我亲测,并不能解决问题。下面给出我亲测可行的办法。根据网上一篇文档所述(作者平芜泫public@korepwx.com),QString以utf-16的格式存储字符串。但是gdal只是根据文件名是否是utf-8编码,来决定如何读取文件名。所以,只要把qstring转.原创 2021-08-28 10:32:30 · 305 阅读 · 0 评论 -
使用windeployqt + enigma打包qt程序
本文参阅了https://blog.csdn.net/yhjahjj1314/article/details/107081868在软件开发过程中,经常遇到自己的exe要依赖其他dll的情况。特别是在依赖的库很多的时候,往往出现丢三落四的情况。enigma将所有的dll和exe文件打包成一个,简化了布置流程。下面举个例子。1 利用qt开发一个简单的程序。Qt版本5.7.0,编译器采用MSVC2013,64bit2 采用release模式编译产生的文件名叫engma.exe3 将编.原创 2021-08-24 14:05:11 · 332 阅读 · 0 评论 -
如何截获QTableView的鼠标事件?
在qt中,widget在人机交互中将产生许多事件,如鼠标的左键按下,释放,鼠标双击等。程序员如果想修改widget对以上事件的响应,有两个办法:1是重写其事件响应函数;(自下而上)2是用eventFilter截获其事件,然后增加处理程序。(自上而下)在大多数的情况下,eventFilter是可以截获widget发来的事件的。但是qTableview的鼠标事件是从viewport()发出的,用一般的手段无法截获。下面的代码展示了正确截获viewport()事件的方式:#include "ma原创 2021-06-26 11:24:57 · 1274 阅读 · 0 评论 -
qlabel通过setStyleSheet设置边框颜色
用setStyleSheet可以设置qlabel的边框颜色。但是注意,设置border-color属性,或者设置color属性都是不起作用的。只能设置border属性,而且要把bi'a线宽、原创 2021-06-13 18:58:55 · 5075 阅读 · 0 评论 -
基于qt制作可下拉-收缩的窗口
思路:来自一个qt交流群的讨论。在下拉窗口上面的抬头栏右边加上一个图标,每次点击到这个图标,就触发展开\收缩窗口。原创 2021-06-10 20:37:02 · 2769 阅读 · 2 评论 -
设置QTableView的内容自动换行(1)
使QTableView自动换行的要点有两个:1 wordWrap属性为true2 每次更新显示的内容后,要调用resizeRowsToContents()下面的li'z原创 2021-05-27 20:33:22 · 8786 阅读 · 7 评论 -
C++实现YUV转RGBA
本文受了https://blog.csdn.net/fanyun_01/article/details/100068351 的启发。但是该文章有一处谬误:YUV420的内存排列不是按照下图所示的。正确的排列应如下(来源维基百科yuv条目):根据正确的内存排列,写出相应的代码:YUV2RGB.h#pragma once#include <qglobal.h>void vFillY_U_V_Buff(const quint32 & ui32Width, con原创 2021-04-20 20:06:04 · 981 阅读 · 0 评论 -
比较QProcess与WinExec的优劣
WinExec的缺点:1 不支持汉字路径2 默认是非阻塞模式运行。改为阻塞模式较麻烦3 不能跨平台以上恰恰都是QProcess所能完成的事情。1 先看汉字支持:以下代码删除目录C:\\汉字\\abc#include "mainwindow.h"#include "ui_mainwindow.h"#include <QProcess>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent原创 2021-03-19 20:15:44 · 382 阅读 · 0 评论 -
Qt事件体系概述(The Event System)
本文译自https://doc.qt.io/qt-5/eventsandfilters.htmlQt的事件都是派生自QEvent的对象。QEvent类代表应用程序内部发生的事情,或者代表程序需要知悉的一些外部活动的结果。事件可以被任何的QObject的派生类接收、处理,但是尤其事件都跟QWidget有关。本文介绍事件被程序发送、处理的典型流程。事件的发送(How Events are delivered)事件发生时,qt产生一个相应的QEvent派生类实例,然后通过调用event()函数把事件发原创 2020-12-05 13:40:20 · 630 阅读 · 0 评论 -
分析QImage::Format_ARGB32的内存排列
在利用Qt开发界面时,不可避免的用到qimage.其中QImage::Format_ARGB32是一种常见的格式。顾名思义,每个像素有四个分量:alpha red green blue.但是其内部如何安排各个分量的次序呢?这里先给出答案:其实次序是(从左到右)BGRA.下面做几个实验验证。先利用photoshop生成一个8乘8的bmp文件,文件左下角的两个像素涂灰,其他位置留白。现在用qt读取这个文件,并载入QImage::Format_ARGB32格式的QImage.#include "原创 2020-11-29 21:27:45 · 3737 阅读 · 0 评论 -
正确刷新Qt表格内容
QAbstractItemModel::dataChanged(QModelIndex topleft, QModelIndex bottomright)信号用来更新指定范围的数据。这个范围是一个矩形,其左上角是topleft, 右下角是bottomright。当model中的内容发生变化时,我们希望view中的内容随之变化。这时候就用到了信号dataChanged。这里借用qt安装时自带的Examples\Qt-5.5\widgets\tutorials\modelview\3_changingmod原创 2020-10-03 19:42:24 · 4972 阅读 · 0 评论 -
Qt如何正确的显示、修改表格(QTableView)的内容
安装Qt时,Qt\Qt5.x.x文件夹下自动安装了example文件夹,其中包含了大量的示例。这里根据Examples\Qt-5.5\widgets\tutorials\modelview\5_edit,制作了一个tableview,支持用户通过表格来编辑条目。设计思想:tableview作为界面,QAbstractTableModel作为存储数据的后端。当界面需要显示条目时,会调用QAbstractTableModel::data()函数。此外,QAbstractTableModel::rowCoun原创 2020-10-03 16:36:17 · 11435 阅读 · 0 评论 -
Qt利用QProcess启动进程实例(打开一个word文档)
windows平台下可以采用WinExec启动进程。但是假如命令中有汉字,WinExec可能会失灵。利用QProcess::start()函数可以像在cmd命令行中一样启动一个进程,并且兼容汉字。这里给出一个实例,打开一个名字中带有汉字的word文档。#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QProcess>namespace Ui {class MainWi原创 2020-10-01 10:43:24 · 3884 阅读 · 0 评论 -
我的第一个qml程序
根据<<Qt Cadaques>>第四页的例子,用qml实现一个纸风车放到绿地背景下。文中描述不甚详尽,这里给一个step-by-step的例子,从建立工程开始,尽量把细节交代清楚。建立工程建立一个普通的c++工程即可,内含一个mainwindow.h/.cpp文件,可以不要ui文件pro文件添加如下QT += core gui quick qml新建qml文件import QtQuick 2.0Image { source: "b原创 2020-09-06 15:28:54 · 175 阅读 · 0 评论 -
控制QTextEdit中字体颜色
以前一直以为,控制QTextEdit控件中字体颜色只能靠setStyleSheet来完成。后来从一个Qt交流群里学到,字体的颜色可以直接在QString里设置。但是只适用于QTextEdit,QLineEdit不行:#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)原创 2020-07-31 21:09:54 · 3226 阅读 · 0 评论 -
qt + html实现嵌入文本框和下拉框的表格
因工作需要,我要基于qt做一个表格。表格中一个单元格含有文本框,可以接受用户的输入;另一个单元格是下拉框,其内容随着文本框的输入而变化。一开始打算用代理(delegate)实现,尝试之后感到比较困难,于是转向qml,也不容易。最后采用的办法是qt + html,原因是html的表格等控件操作比较简单。下面是代码:QT += core gui webkitwidgets networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets原创 2020-07-26 17:26:54 · 1307 阅读 · 0 评论 -
例说qt的QLineF::fromPolar()函数
fromPolar(length, angle)函数在官方文档的解释如下:Returns a QLineF with the given length and angle.The first point of the line will be on the origin.Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero deg原创 2020-06-07 10:19:48 · 482 阅读 · 0 评论 -
例说qt的QLineF::angle() 函数
1)QlineF::angle()函数在官方文档中如下定义:The angles are measured counter-clockwise from a point on the x-axis to the right of the origin (x > 0).从X轴正方向沿逆时针转动,直到与QLineF(p1, p2)平行,转过的角度,就是angle()的返回值。其中,QlineF的指向是从p1指向p2.看下面的界面:矢量返回的角度是0,因为它与x轴正方向平行。第二个.原创 2020-06-07 09:13:25 · 1823 阅读 · 0 评论