Qt
文章平均质量分 60
伐尘
这个作者很懒,什么都没留下…
展开
-
【QT】qOverload函数介绍
该函数返回一个指向重载函数的指针,其中的模板参数是重载函数参数类型的列表(list)。int如果其中有成员函数是const-overloaded类型的,则必须使qConstOverload 和qNonConstOverloadintintqOverload()需要C++14的支持。在C++11风格的代码中,QOverload和注意:Qt会根据《C++ Committee’s Standing Document 6》中的特征测试推荐来检测必要的C++14编译器支持。转载 2024-04-07 09:34:26 · 66 阅读 · 0 评论 -
[Qt] 软件重启
【代码】[Qt] 软件重启。原创 2023-12-10 23:33:24 · 539 阅读 · 0 评论 -
【QT】枚举与字符串互相转换
利用Qt元对象系统的特性实现对枚举类型与字符串的互相转换功能。转载 2023-08-29 09:12:01 · 834 阅读 · 0 评论 -
【QT】QT 防止按钮快速重复点击
【代码】【QT】QT 防止按钮快速重复点击。转载 2023-06-17 11:11:57 · 1241 阅读 · 0 评论 -
【QT】 QSS类的用法及基本语法介绍
由于Qt样式表的引入,定制Qt部件的外观样式变得非常简单。无论你是想仅仅修改一个现有部件的外观,还是想从零开始设计一套全新的界面风格, 现在都有了一种新的方法而不必再去继承并实现一个QStyle的子类。许多部件都包含有子元素,这些元素可以称为“子部件”。Spin box的上下箭头就是子部件最好的例子。子部件可以通过::来指定,例如QDateTimeEdit::up-button。原创 2023-05-05 00:37:39 · 896 阅读 · 1 评论 -
【QT】 Qt高级——Qt自定义标题栏
自定义标题栏需要完成功能如下:(1)自定义标题栏需要包含最小化按钮、最大化按钮、关闭按钮、标题标签、图标标签等图形元素。(2)标题栏的拖拽。(3)鼠标双击标题栏实现窗体的最大化、最小化。自定义窗体基类的功能如下:( 1 )自定义标题栏。( 2 )增加内容组件,内容组件内部的界面布局完全由具体的用户决定。* @brief 标题栏界面组件* @author/*** @brief 设置标题栏标题* @param title,参数,设置的标题/*** @brief 设置标题栏的图标。原创 2023-05-05 00:29:10 · 3285 阅读 · 0 评论 -
【QT】【VS】在Visual Studio高版本中使用Qt4,MSVC 2015/2017编译Qt 4.8.7源码
【QT】【VS】在Visual Studio高版本中使用Qt4,MSVC 2015/2017编译Qt 4.8.7源码一、先来看一篇转载文章《在 VS2015 中使用 Qt4》http://tangzx.qiniudn.com/post-0111-qt4-vs2015.html 最早的原文,看不到了https://github.com/district10/qt4-vs2015x64 原作者的github,里面的东东都下载不了了二、firecat本人的教程0、Qt官方Qt4.8.7官方源码下载h转载 2022-04-29 15:52:23 · 1460 阅读 · 3 评论 -
【VS】【Qt】vs+ qt .natvis 失效问题 qstring调试乱码
.natvis文件用于调试时候自定义显示自定义类型的可视化提示。一般这类文件存在C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\Common7\Packages\Debugger\Visualizers路径下。.natvis文件的规则在此不介绍,详见官网:在调试器中创建本机对象的自定义视图在natvis失效的时候,检查以下选项是否被勾选,如果是,则解除勾选如果没勾选还是无法显示正确的自定义试图,则考虑是否natvis文件出错原创 2023-03-03 14:28:24 · 2344 阅读 · 0 评论 -
【Qt】qt plugins 插件框架
(Plug-in,又称、add-in、或add-on,又译)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。例如在IE中,安装相关的插件后,WEB浏览器能够直接调用插件程序,用于处理特定类型的文件。其实插件的优点也是常说的设计模式的设计原则;比如 、、、等。对于大型系统来说,可以多人同时开发,互不干扰等优点。插件都是关于接口的,以插件为基础转载 2023-03-13 11:17:41 · 1803 阅读 · 0 评论 -
【Qt】QT中实现程序只运行一个实例--应用程序的单例化
最近想实现一个应用程序单例化的程序,目前使QT运行一个实例有如下几种方式使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出;这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动.文件锁在程序运行的时候就在目录下创建一个文件,当程序运行时就判断这个文件是否存在,如果存在说明程序已经在运行。其本质与QSharedMemory相同利用参照使用QT扩展库,能很好的解决这个问题.转载 2023-03-12 20:46:46 · 1394 阅读 · 0 评论 -
【QT】QT5 获取窗口、系统屏幕大小尺寸信息,Qt 获取控件位置坐标,屏幕坐标,相对父窗体坐标
QT窗口尺寸,窗口大小和大小改变引起的事件 QResizeEvent。转载 2023-02-04 17:45:57 · 3410 阅读 · 0 评论 -
【QT】Mac电脑(苹果电脑)Qt 菜单栏不显示的问题解决办法
我所遇到的问题,并不是qt for mac 不显示菜单栏,而是菜单栏显示到Mac 菜单栏上去了,我想让Qt 菜单栏显示位置和win 系统下一样,不管是在纯代码环境和UI 设计环境下都需要修改setNativeMenuBar 参数设置具体方法如下。转载 2023-02-01 19:22:20 · 1082 阅读 · 2 评论 -
【QT】qt控件位置获取的正确姿势
mapToGlobal应该是获取对象(0,0)处的全局坐标,QWidget::pos()是多此一举的做法,如果widgetA并不在父对象坐标系原点处,就会多出偏移量,违背本意,具体表现为widgetB移动至比设想位置更往右边的位置。目标:两个控件widgetA、widgetB,希望将widgetB移动至widgetA上方。UI层级关系为:widgetB的上一级父对象为顶层窗口类,而widgetA不直接继承顶层窗口类,中间隔了几层父对象。原创 2022-12-28 16:06:12 · 2159 阅读 · 0 评论 -
【Qt】Qt 窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标
零零碎碎看了很多Qt例子,有一些很零散的窗体控制方法,在这总结一些。原创 2022-11-18 00:11:27 · 1507 阅读 · 0 评论 -
【cmake】CMake编译Qt项目
对于Qt项目,一般情况下使用qmake进行编译,但是在编译过程中会对源代码有一定程度上的改变,而使用CMake则没有这种烦恼,或者说比较简单的进行编译。原创 2022-11-17 23:58:57 · 1889 阅读 · 0 评论 -
【cmake】CMake+Qt5.15 配置ui及qrc文件
【代码】【cmake】CMake+Qt5.15 配置ui及qrc文件。原创 2022-11-17 23:53:54 · 2149 阅读 · 0 评论 -
【QT】Qt学习之资源文件(qrc)的添加以及使用
当Qt工程打包好发给他人使用时可能会出现一些图片不显示或者一张图片都加载不出来情况,那么可能就是他人的电脑没有这些图片资源,或者源程序加载图片的方法采用的是绝对路径的写法,与他人电脑上面图片的绝对路径不一致导致加载不出来。通过Qt添加资源文件的方法就可以解决这个问题,而且项目打包发给别人的时候不需要把图片也一起打包,可以节省很多空间。图片路径的写法:冒号 + 之前添加的前缀 + 图片所在的文件夹 + /xxx.png。上述方式适用于项目配置文件(数据库配置、redis配置等等)的添加与使用。转载 2022-11-01 14:48:14 · 16103 阅读 · 3 评论 -
【QT】Qt 中设置窗体透明度的几种方法
在构造函数里添加代码,需要添加头文件qpalette或通过设置窗体的背景色来实现,将背景色设置为全透。效果:窗口整体透明,但窗口控件不透明,QLabel控件只是字显示,控件背景色透明;窗体客户区完全透明。转载 2022-10-28 17:31:57 · 1228 阅读 · 0 评论 -
【QT】QT事件处理器实现窗口拖拽移动
QT窗口默认可以直接鼠标点住窗口的标题栏实现拖拽移动,如果需要鼠标点住窗口客户区域实现窗口的拖拽移动,可以通过QMouseEvent事件来实现。转载 2022-10-28 17:26:11 · 871 阅读 · 0 评论 -
【QT】Qt之事件过滤器实现自由拖动窗口
Qt之事件过滤器实现自由拖动窗口转载 2022-10-28 17:22:20 · 189 阅读 · 0 评论 -
【QT】自定义事件 QCustomEvent
尽管 Qt 已经提供了很多事件,但对于更加千变万化的需求来说,有限的事件都是不够的。例如,我要支持一种新的设备,这个设备提供一种崭新的交互方式,那么,这种事件如何处理呢?所以,允许创建自己的事件 类型也就势在必行。即便是不说那种非常极端的例子,在多线程的程序中,自定义事件也是尤其有用。当然,事件也并不是局限在多线程中,它可以用在单线程的程序中,作为一种对象间通讯的机制。那么,为什么我需要使用事件,而不是信号槽呢?主要原因是,事件的分发既可以是同步的,又可以是异步的,而函数的调用或者说是槽的回调总是同步的。事原创 2022-10-13 14:42:27 · 1326 阅读 · 2 评论 -
【QT】QT中将float数转换为QString类型
【代码】【QT】QT中将float数转换为QString类型。转载 2022-09-22 11:32:33 · 2177 阅读 · 0 评论 -
【QT】QSTRING是否相同判断、是否包含某个字符串、字符串截取
二、QString判断是否包含某个字符串上面代码中 为枚举类型, 可取值 和 , 表示匹配的灵敏度, 代表区分大小写; 代表不区分大小,可以自行尝试;从QString mid(int position, int n = -1) const方法就可以看出来,第一个参数是截取位置,第二个参数是截取长度,可以自行尝试;...原创 2022-07-12 18:47:31 · 5794 阅读 · 0 评论 -
【QT】QT之QElapsedTimer计时
提供了一种。它通常被用来计算两个事件或操作之间过去了多久。并且,该类的方法非常数,所以,我们可以很快速的在使用这两个类的代码之间进行移植。但是,。这也就意味着,系统时间的修改对它不会产生影响,同时也没办法将对象转换成人类可读的时间格式。这个类主要的使用方法就是测量一个操作耗时多久,例子如下:同时也可以在一个耗时操作完成后,通过elapsed() 函数的返回值来决定下一个操作可以开始运行的时间。这对于需要在一定的时间周期内完成几个具体的耗时操作来说是至关重要的。如下代码所示:另一个的使用方法是,一个具体的转载 2022-06-21 17:58:12 · 6837 阅读 · 0 评论 -
【QT】QT修改txt内容
【QT】QT修改txt内容本例是个简单的小技巧示例代码:#include <QString>#include <QStringList>#include <QFile>#include <QTextStream> void writeTxt(){ QString strAll; QStringList strList; QFile readFile(PATH); //PATH是自定义读取文件的地址原创 2022-05-18 14:42:46 · 3540 阅读 · 2 评论 -
【QT】qt保留两位小数
【QT】qt保留两位小数QString str;double val = 3.14159;str = QString::number(val,'f',2);//方法1str = str.setNum(val,'f',2);//方法2str = QString::asprintf("%.2f",val);//方法3str = str.sprintf("%.2f",val);//方法4转载 2022-05-09 17:29:44 · 6228 阅读 · 0 评论 -
【Qt】Qt之QSS(动态属性)
【Qt】Qt之QSS(动态属性)简述QSS可以定制应用程序的外观,无需关注Qt样式背后的魔力。从非常轻微到极其复杂的调整,样式表都可以做到。对于一个完全定制和独特的用户体验,QtQuick和QGraphicsView是更好的选择。自定义属性为了用户界面外观的动态变化,属性选择器可以与动态属性组合使用。动态属性在Qt4.2中引入,允许为编译时不存在的QObject属性分配属性值。即:如果为QObject设置一个urgent属性为true,该属性将跟随该类,但不会为urgent属性包含一个Q_PROPE转载 2022-05-06 01:23:50 · 1694 阅读 · 0 评论 -
【Qt】QThreadPool类和QtConcurrent命名空间
【Qt】QThreadPool类和QtConcurrent命名空间一、QThreadPool类QThreadPool管理一组线程。它负责管理和回收单个QThread对象以减少程序中线程创建的开销。每个Qt应用程序都有一个全局的QThreadPool对象,可通过方法globalInstance()获得。为了调用QThreadPool中的一个线程,需要提供一个从QRunnable继承过来的类,并实现其中的run方法。然后创建一个该类的对象,传递给QThreadPool::start()方法。代码片断如下:转载 2022-05-05 10:13:29 · 221 阅读 · 0 评论 -
【QT】Qt 中 Json 的操作
【QT】Qt 中 Json 的操作在 Json 的两种格式中介绍了 Json 的格式以及应用场景。由于这种数据格式与语言无关,下面介绍一下 Json 在 Qt 中的使用。从 Qt 5.0 开始提供了对 Json 的支持,我们可以直接使用 Qt 提供的 Json 类进行数据的组织和解析。相关的类常用的主要有四个,具体如下:Json 类介绍QJsonDocument它封装了一个完整的 JSON 文档,并且可以从 UTF-8 编码的基于文本的表示以及 Qt 自己的二进制格式读取和写入该转载 2022-05-05 10:06:13 · 2895 阅读 · 0 评论 -
【QT】Qt之容器控件(QGroupBox)
【QT】Qt之容器控件(QGroupBox)简述QGroupBox小部件提供带有标题的组框框架。一个组框提供一个框架,一个标题,一个快捷键,并在其内部显示其他各种小部件。键盘快捷键将键盘焦点移到组框的子窗口小部件之一。功能描述QGroupBox还允许您设置标题(通常在构造函数中设置)和标题的对齐方式。组框可以被选中。可选中组框中的子窗口小部件是否启用,取决于是否选中了该组框。您可以通过启用flat属性来最小化组框的空间消耗。在大多数样式中,启用此属性会导致删除框架的左,右和底边缘。QGroup转载 2022-04-28 18:46:48 · 6660 阅读 · 1 评论 -
【QT】Qt多线程编程之高级函数
【QT】Qt多线程编程之高级函数1. 概述之前的文章我们都是讨论 QThread 这种很底层的类,使用起来要考虑方方面面。或者说只要用到底层的接口(如 QThread、信号量、互斥锁等),那基本就是重新造一个轮子出来。幸运的是,Qt 提供了高级函数来简化我们的多线程编写,它就是 Qt Concurrent 模块!只要在 pro 文件添加“Qt += concurrent”并且在我们的 h 文件添加“#include ”,就可以使用这些函数了。基本上所有的 concurrent 函数分为三种类型:r原创 2022-04-27 16:56:43 · 1740 阅读 · 0 评论 -
【QT】深入了解QT消息循环及线程相关性
【QT】深入了解QT消息循环及线程相关性一、什么是Qt消息循环Qt消息循环,就是从一个队列中不断取出消息,并响应消息的过程。窗体的鼠标、键盘、输入法、绘制,各种消息,都来自于Qt的消息循环。以Windows操作系统为例,Qt接管Windows原生窗口消息,并翻译成Qt的消息,派发给程序下的各个子对象、子QWidget等,通过接管层,可以很好屏蔽不同平台之间的差异性,开发人员不需要关心Windows或者X11的消息的差异性,只需要搞清楚各个QEvent之间是什么含义。最开始的Qt消息循环开始于QCore原创 2022-04-27 10:25:26 · 3171 阅读 · 1 评论 -
【QT】QObject三大核心功能——事件处理
【QT】QObject三大核心功能——事件处理QObject三大核心功能:信号与槽,内存管理,事件处理总览谁来产生事件: 最容易想到的是我们的输入设备,比如键盘、鼠标产生的keyPressEvent,keyReleaseEvent,mousePressEvent,mouseReleaseEvent事件(他们被封装成QMouseEvent和QKeyEvent),这些事件来自于底层的操作系统,它们以异步的形式通知Qt事件处理系统,后文会仔细道来。当然Qt自己也会产生很多事件,比如**QObject::原创 2022-04-27 10:09:19 · 1976 阅读 · 0 评论 -
【QT】 自定义事件QEvent
【QT】 自定义事件QEvent继承QEvent// 实现在myevent.h中#include <QEvent>class MyEvent: public QEvent{public: MyEvent(int value1, double value2) : QEvent(Type(eventType)), _value1(value1), _value2(value2) {} // 定义自定义事件类型 static QEvent::Typ原创 2022-04-27 09:36:07 · 1387 阅读 · 0 评论 -
【QT】Qt布局交换两个控件位置
【QT】Qt布局交换两个控件位置思路就是找到两个控件在布局中的索引,然后交换,交换完成后重新设置布局。int index1 = ui->gridLayout->indexOf(widgets.at(6));int index2 = ui->gridLayout->indexOf(widgets.at(0));QLabel *lab = widgets.at(index1);widgets[index1] = widgets.at(index2);widgets[index转载 2022-04-26 12:00:58 · 1728 阅读 · 0 评论 -
【QT】Qt多线程中的信号与槽
【QT】Qt多线程中的信号与槽1. Qt对象的依附性和事务循环QThread继承自QObject,自然拥有发射信号/定义槽函数的能力。QThread默认声明了以下几个关键信号(信号只能声明不能定义):(1) 线程开始运行时发射的信号void started()(2)线程完成运行时发射的信号void finished()...转载 2022-04-26 11:45:08 · 3306 阅读 · 1 评论 -
【QT】QT怎么把别的exe程序嵌入到自己的窗口中
【QT】QT怎么把别的exe程序嵌入到自己的窗口中示例1:示例二 etProgram(sProgram);pProcess->start();qint64 lID = pProcess->processId();QWindow* window = QWindow::fromWinId(lID);QWidget* widget = QWidget::createWindowContainer(window, this, Qt::Widget);widget->sho原创 2022-04-26 11:20:54 · 2941 阅读 · 0 评论 -
【VS】VS2019 配置 qt4.8.7
【VS】VS2019 配置 qt4.8.7安装Vs2019 Qt扩展不能在Vs2019中创建工程的,需要在Vs2008或者Vs2010中创建好工程再从Vs2019打开打开后在工程右键Qt转换成Qt工程工程右键属性,把一下两个配置项去掉,完成,编译通过参考链接:https://blog.csdn.net/qq_26464401/article/details/117433490...原创 2022-04-26 11:13:19 · 985 阅读 · 0 评论 -
【QT】Qt之QFutureWatcher
【QT】Qt之QFutureWatcher简述QFuture 表示异步计算的结果,QFutureWatcher 则允许使用信号和槽监视 QFuture,也就是说,QFutureWatcher 是为 QFuture 而生的。详细描述QFutureWatcher 提供了有关 QFuture 的信息和通知,使用 setFuture() 函数开始监视一个特定的 QFuture,函数 future() 则返回由 setFuture() 设置的 future。为了方便,QFuture 的很多函数可以直转载 2022-04-25 16:29:05 · 4568 阅读 · 1 评论 -
【QT】QFuture的使用:多线程与进度条
【QT】QFuture的使用:多线程与进度条介绍QFuture 类可以用来获取异步计算的结果(类似 std::future ),一般配合 Qt Concurrent 模块和 QFutureWatcher 类工作。在 Qt Creator 中搜索 concurrent 可以看到一些相关示例。官方示例中, QFuture 一般和 QFutureWatcher 配合,因为 QFuture 不是 QObject 子类,没有信号槽。但是 QFuture 相关的接口会触发 QFutureCallOutEvent 事转载 2022-04-25 16:03:13 · 1597 阅读 · 1 评论