
Qt 技术
十启树
坚持
展开
-
QTextBrowser 点击后不跳转网页,响应其他事件
在Qt中,如果你想要在QTextBrowser上点击链接时弹出一个对话框而不是跳转到网页,你可以通过覆盖QTextBrowser的anchorClicked信号来实现这个功能。默认情况下,QTextBrowser在点击链接时会尝试加载链接指向的URL。为了阻止这种行为并改为显示一个对话框,话不多说直接上代码。工作中,需要实现这么一个功能,QTextBrowser 中网页的点击事件,点击后不进行网页跳转,只响应点击事件,用于做其他事。原创 2025-03-24 09:52:11 · 220 阅读 · 0 评论 -
QCustomPlot中QCPGraph中图例的隐藏
对于更复杂的布局控制,你可以通过自定义QLegend的QLegendHandler来实现更灵活的控制。这涉及到更深入的QCustomPlot内部机制,通常用于高级定制。原创 2025-03-21 16:44:42 · 230 阅读 · 0 评论 -
Qt 6.6.1 中 QPixmap::grabWindow() 的用法与替代方案
截取区域的起始坐标(相对于窗口左上角),获取当前窗口的句柄);:截取区域的尺寸,默认。若需截取特定控件(如。表示截取至右下角。,避免直接处理窗口句柄。原创 2025-03-12 10:19:32 · 548 阅读 · 0 评论 -
Qt 实现抽屉效果实例
抽屉样式修改中的样式,例如背景颜色、文字内容等。在Drawer构造函数中添加更多的 UI 组件,例如按钮、标签等。动画效果修改的duration属性调整动画速度。修改的参数调整动画的缓动效果(例如或。原创 2025-03-06 16:29:18 · 492 阅读 · 0 评论 -
Qt 实现会转动风扇效果
继承,并在其中添加绘制风扇动画的功能。public:// 初始化风扇旋转角度// 创建一个定时器,用于更新旋转角度// 每50毫秒更新一次protected:// 在按钮上绘制风扇// 启用抗锯齿// 设置绘制中心点// 绘制风扇叶片// 平移到中心点// 应用旋转角度// 绘制三个叶片i < 3;++i) {// 每次旋转120度// 每次旋转3度update();// 刷新界面private:2 创建主窗口并添加按钮。原创 2025-03-06 15:48:09 · 424 阅读 · 0 评论 -
Qt中QWidget自定义形状
方法2,也可以实现,如果要移动,可以加入移动窗口函数进行处理。会在需要重绘窗口时被调用在这个例子中,我们创建了一个。在Qt中,要创建自定义形状的。在这个例子中,我们创建了一个。函数来定义一个自定义的形状。函数来定义一个自定义的形状。来填充路径指定的颜色。来填充路径指定的颜色。会在需要重绘窗口时被调用.来定义形状的路径,并使用。来定义形状的路径,并使用。原创 2024-12-26 11:37:30 · 392 阅读 · 0 评论 -
QPainter在Qt中三种类型的渐变
线性渐变由两个控制点定义,连接这两点的线上设置一系列的颜色断点。这些断点被钳位到浮点数0和1之间,0对应第一个控制点,1对应第二个控制点,两个指定断点之间的颜色由线性插值得出。辐射渐变由一个中心点、半径、一个核心,以及颜色断点控制。中心点和半径定义一个圆,颜色从中心向外扩散。锥形渐变由一个中心点和起始角度定义,颜色从中心点向外扩散。这段代码会在一个椭圆内填充从白色到绿色再到黑色的线性渐变。这段代码会在一个椭圆内填充从中心向外扩散的线性渐变。1,线性渐变(QLinearGradient)原创 2024-12-20 16:22:22 · 621 阅读 · 0 评论 -
用Qt 对接百度AI平台
首先我们选择的 AI模型是百度的,然后注册,申请密钥相关的东西(和上一篇语音识别一样的方式),模型场就是用免费的(注册后就有的,一般对话),有些场景模型需要收费。很多同学想利用几大模型AI弄点东西,但又不知道如何去介入?最近帮同学弄点东西,刚好要接入到AI平台,就顺便研究了一下,并记录下来。3, 利用 TOKEN 发送消息到AI平台上去获取结果。2, 利用KEY ,SECRET 获取TOKEN。原创 2024-09-19 17:17:25 · 1035 阅读 · 0 评论 -
用Qt 对接百度语音识别接口
3,涉及到的Qt 类有 QAudioFormat,QAudioDeviceInfo,QAudioInput,QNetworkAccessManager;4,QAudioFormat 类主要作用用来配置音频参数 ,如设置采样率、设置采集通道数、设置样本大小、设置录音格式为;1,利用 百度 生成的API_Key,Secret_Key,获取access_token。6,QNetworkAccessManager HTTP网络访问类;2,注册百度云平台,获取语音相关东西,1,搭建好开发环境;原创 2024-09-13 11:50:10 · 891 阅读 · 0 评论 -
qt 在vs2022 报错记录
2,在一个文件中已定义,编译器在链接时,在多处报 已在.*****文件已定义,让你摸不清头脑,可能在vs2015之前的版本不报错,移到到vs2022上就报错了,因为vs2022对编译与链接都比以前低版本严谨了,如语法上、参数使用上。3,Qt 6.6.1后出现的错误,这种错误是偶然性,有时出现,有时不出现。定义错误,导致其他错误,原因难找。只要加const 完美解决,为什么呢,定义常量,就得加const。需要把SSL 相关的库加入进去,如ssleay32.dll,libeay32.dll。原创 2024-08-13 11:16:52 · 396 阅读 · 0 评论 -
Qt实现中英文切换中QMessageBox中的中文信息怎么处理
总结:所有的QMessageBox中的控件,只有QLabel与QPushButton,所以只要获取相应的控件,就可以随意改变文字与字体颜色,大小等。获取button 的关键语句msgBox->button(QMessageBox::Yes)。有粉丝看了《Qt实现中英文切换》文章后,留言说“中英文切换中QMessageBox中的中文信息怎么处理”,这篇文章就告诉你处理方法。修改后的,我们可以根据自己的喜好,设置更特别的文字。原创 2024-08-08 17:23:01 · 656 阅读 · 0 评论 -
用Qt 中的QPainter类画时钟
在Qt中,我们可以通过QPainter类来绘制各种图形,包括时钟指针。以下是一个简单的例子,展示了如何在Qt中绘制一个简单的时钟指针。这段代码定义了一个ClockWidget类,它继承自QWidget。它有一个定时器,每秒触发一次更新事件,然后在。函数用于绘制时针、分针和秒针。程序的主函数中创建了ClockWidget的实例,并显示出来。中重绘时钟表盘和时钟指针。原创 2024-06-13 09:40:11 · 425 阅读 · 0 评论 -
QScrollArea背景色设置为透明
工作中 常常要设置 当前窗口为透明,保持与父窗口一样的样式或颜色,其他父窗口上的控件比较容易,一般自动和父窗口颜色一样;其他不能和父窗口一样的样式,直接back-color:transparent就可以了。但QScrollArea怎么设置都不能保持透明。第三种方法不错,可以实现!3 第三种方法 OK。原创 2024-05-17 11:45:00 · 1013 阅读 · 0 评论 -
QJsonObject构建指定的JSON结构
接着,为每条消息创建了一个QJsonObject,并设置了"role"和"content"键值对。最后,将消息对象加入到数组中,并将这个数组添加到最外层的json对象里。如今我们生活处处用到AI,AI 带给了我们很多方便,但作为程序员我们,虽然不能开发什么 AI,但时不时需要调用国内四大平台的AI接口。1,我们先以QJsonObject 构建 "messages": [ {"role": "user","content": "你好"}] 为例。如下接口数据 ,有些人不知道怎么构建。总结:是不是很简单。原创 2024-05-16 10:41:34 · 554 阅读 · 0 评论 -
Qt 实现TCP 协议的断开重连
注意:在实际应用中,你可能需要根据具体情况调整重连策略,比如增加重试次数限制,或者在尝试几次失败后让用户决定是否继续重试。3. 实现槽函数以处理断开连接: 在槽函数中,可以设置一个定时器来尝试重新连接。5. 初始化定时器: 在合适的地方(如构造函数)初始化定时器,并连接其timeout信号到重连槽函数。2. 连接信号与槽: 连接disconnected()信号到一个槽函数,这个槽函数负责启动重连逻辑。4. 实现定时器槽函数以尝试重连: 当定时器时间到达时,槽函数会被调用,此时尝试重新连接服务器。原创 2024-05-08 08:50:32 · 2036 阅读 · 1 评论 -
ftplib开源代码编译成DLL,实现在Qt 的ftp功能
但可以通过编译QFtp 模块的源码可以在Qt 5.12之前的版本上使用(博主只试到这个版本,后面直接上Qt6.6.1),等博主把公司项目升级到Qt 6.6.1后,发现编译QFtp 模块的源码在此版本上编译不能通过,所以也不使用了,Qt 6.6.1版本找了很多方法,均不能实现想要的功能或者说压根做出来,不像ftp。后来选择用c 语言编写ftplib,经过测试,发现不错,基本能实现ftp 功能,以后在Qt上用此功能,再也不担心Qt版本升级。1,下载ftplip 源代码,建dll工程生成dll。原创 2024-04-18 08:57:59 · 337 阅读 · 0 评论 -
Qt 4.8中的ftp 功能在Qt 5.9.4 之前版本中的应用
QFtp源码在Qt 版本升级到6.6.1 后,怎么也编译不过。于是在Qt 6.6.1基础 翻了很多资没有发现能像Qftp 实现ftp功能。后续用ftplib库实现。很久以前也就是在Qt 4.8版本后, 如果想要用Qt ftp功能,是把Qt 4.8中的QFtp源码拉出来,编译、修改然后就能在Qt 其他版本使用。但每一次升级Qt 版本,就要把Qt ftp 源码在相应的Qt 版本编译,修改。太麻烦了,但为了能更好的像ftp 一样使用,还是迁就一下。下面就是升级版本编译的相应的文件。原创 2024-04-07 15:54:35 · 536 阅读 · 0 评论 -
error “btye “c2872 不明确的符号
在开发环境由VS2015 +Qt5.9.4 转 VS2022+Qt 6.6.1 ,移动FTP功能时,编译报错error "btye "c2872 不明确的符号错误原创 2024-03-20 09:14:57 · 541 阅读 · 0 评论 -
qt 字体大小根据像素变化
在 Qt(一个跨平台的 C++ GUI 框架)中,字体大小通常是以点(pt)为单位来设置的。但是,如果你想要根据像素(px)来设置字体大小,你可以通过一些转换来实现。Qt 的字体大小设置是基于屏幕 DPI(每英寸点数)的,所以你需要考虑到屏幕的 DPI 来进行转换。请注意,这种方法假设你的应用程序是在一个具有固定 DPI 的屏幕上运行的。如果你的应用程序是在一个高 DPI 屏幕上运行的,或者用户更改了他们的屏幕 DPI 设置,那么你就需要更复杂的逻辑来处理这些情况。原创 2024-02-20 11:00:00 · 850 阅读 · 0 评论 -
Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)
QDateTimeQDateTime之前之后。原创 2024-01-31 12:12:15 · 866 阅读 · 2 评论 -
Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(二)
既然电脑上的开发环境都需要重装,就打算把开发环境也升级到最新版本,要用就用最新版本。QApplication::desktop()废弃了, 换成了 QApplication::primaryScreen()QDateTime(QDate)用法已不能编译通过,需要改成QDateTime(QDateTime)。16, QEvent中的 delta 函数,可以用anleDelta().x()来替代。最近公司对大家的开发的硬件环境进行了升级,电脑主机的配置、以前注释用法,变成红框里的用法。insert函数替代。原创 2024-01-03 16:57:43 · 856 阅读 · 0 评论 -
Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(一)
最近公司对大家的开发的硬件环境进行了升级,电脑主机的配置、显示器(两台大屏显示器)变得的逼格高多了。既然电脑上的开发环境都需要重装,就打算把开发环境也升级到最新版本,要用就用最新版本。感觉Qt 6.6.1 对编译的严格度提高了,遇到了好几个这样的问题。QDateTime::currentDateTime().toTime_t() 我用QDateTime::currentDateTime().toSecsSinceEpoch()替代。所有老的工程,升级还会遇到好多问题。原创 2023-12-30 10:37:50 · 1211 阅读 · 0 评论 -
Qt实现中英文切换步骤
1,选中工程(记得一定要选中,否则Create New Translation File 是灰色的)。以下是已有的工程下,增加中英文切换的功能(当然还可以多语言切换)。5,先选中,然后在把对应的中文翻译成英文,然后再运行点击第三步,编译好。如果 想程序默认语言,可以在main.c函数中加载相应的语言。3,thtlangu_demo_zh.ts 中文的ts.2,选择你要创建的语言(中文与英文都需要创建)6,发布成我们Qt能调用的.qm文件。4,打开其中一个ts.。7,把发布的中、英文的qm添加到资源中。原创 2023-12-16 08:30:00 · 1117 阅读 · 1 评论 -
实现进程间的通信
在Visual Studio 2013,Visual Studio 2017都是可以。第四步:调用上面生的dll,生成的动态库,不同的进程(不同语言生成的程序)之间的相互通信息。使用者不同关注一个进程在写数据,而另一个进程在读取数据时引起的问题,因为中间加了互斥锁。第一步:在Visual Studio 2015中,创建DLL工程。这个DLL 还可以用与JAVA,VB程序之间进程通信,大家也可以根据需要对DLL进行扩充。下面我们就以c#编译的进程与Qt编译的进程进行通信。第三步:直接编译,就可以生成dll。原创 2023-12-15 08:00:00 · 560 阅读 · 0 评论 -
Qt 离线地图之QGIS使用
现在就可以在地图上画点,画线,增加mark标志等操作。因为博主没有专业做这方面工作,只是进行简单的应用,只研究到这里。有兴趣大家可以自行研究,数据 除了可以加地形数据 ,还可以加行政数据 ,学校数据等等。3,至此Qt 与QGIS的开发环境就配置完成了,剩下的就是根据需要填空。2,打开vs2015(或以上版本都可以),创建空工程,下载的截图是博主以前用过的。下载最后一个安装包,这个安装包有64位,32位的,用的时间不用考虑系统版本。注:地形数据要有台湾,有些提供的地形数据无台湾,那是。原创 2023-12-13 08:49:07 · 1664 阅读 · 0 评论 -
Qt实现在线地图之Qt与js之间的交互
大家可以根据自己需要扩充。注:因为是21年写的,qt 5.9.4 版本,如果版本进行了升级,可能有点不同,不过大的方法就是这样。二是上几篇写的就是与之相关的(有关地图的),同时也希望大家同时关注博主今日头条主页。2,当程序编译好,准备发布时需要带下如下的动态库,红框是特别需要注意的地方,少了他们程序可以运行,但页面显示不出来(在自己电脑可以显示,安装到别人电脑就不显示了)。(1)在这里,需要做的最重要的一件事,就是注册百度地图开的API key(注:这个key比较重要,不要透露给别人) ,注册是免费的。转载 2023-12-12 10:37:15 · 349 阅读 · 0 评论 -
Qt 使用百度的离线地图
不过注意放大级别越大,需要的瓦片越多,导致程序安装包也会变的很大很大。使用百度离线地图,一下载百度离线包(offlinemap);二是准备地图瓦片(不同级别的瓦片);四,Qt与页面交互。2,地图部分瓦片,链接:https://pan.baidu.com/s/1dQ409qhtmjIXjk9Hj4Fjiw。链接:https://pan.baidu.com/s/1XyzAChKKhY_XOxAsypKLyQ。与上一篇的 Qt使用百度在线地图方法2实现方面一样。,不过有些级别(放大缩小级别)下载不了,需要会员。原创 2023-12-12 08:45:15 · 1553 阅读 · 7 评论 -
qt 使用百度在线地图 方法2
使用百度在线地图两个关键点,一是html页面准备;二是qt 与js 语言的交互。最终效果,本图片为我们实际应用中的一个效果图。html 页面中调用 qt函数。原创 2023-12-11 12:16:19 · 1022 阅读 · 0 评论 -
qt 使用百度在线地图 方法1
在使用Qt和百度在线地图时,你需要从百度地图开放平台获取API密钥,并使用该密钥在Qt应用程序中集成百度地图。1,首先,从百度地图开放平台获取API密钥。你需要注册一个百度账号,并创建一个应用来获取API密钥。6,运行Qt应用程序,你将看到一个包含百度在线地图的窗口。你可以通过缩放和平移来查看不同区域的地图。2,在Qt项目中,导入必要的头文件和库文件。原创 2023-12-10 11:36:00 · 1587 阅读 · 0 评论 -
Qt 布局讲解及举例
Qt布局是一个用于管理窗口部件位置和大小的机制,它使得开发人员能够轻松地创建可伸缩、可调整大小的界面。在Qt中,布局管理器是一种用于自动调整窗口部件大小的机制,它可以根据窗口大小的变化自动调整部件的位置和大小。Qt布局管理器通过使用布局元素(如QHBoxLayout、QVBoxLayout、QGridLayout等)来管理窗口部件的位置和大小。利用代码布局以增加布局的灵活性,比较根据窗口大小改变布局;通过使用Qt布局管理器,可以轻松地创建可伸缩、可调整大小的界面,提高应用程序的用户体验。原创 2023-11-29 21:24:04 · 907 阅读 · 0 评论 -
Qt Location中加载地图对象
最后,你可以将地图对象添加到窗口布局中,以便在应用程序中显示地图。对象来控制地图的显示和交互。你可以设置地图的中心坐标、缩放级别、地图样式等属性。1,首先,确保你已经安装了Qt Location模块,并在项目中包含了相应的头文件。对象的其他方法来控制地图的显示和交互,例如设置地图的缩放级别、添加地标或路线等。3,现在你已经成功加载了地图对象。2,在窗口类中,添加一个。原创 2023-12-04 11:27:52 · 1650 阅读 · 3 评论 -
QT中如何使用自定义控件
首先,需要创建一个自定义控件类,该类继承自 QWidget 或 QGraphicsItem 等基本控件类,并实现其相关函数和槽函数等。在自定义控件类的头文件中,需要包含 QWidget 或 QGraphicsItem 等基本类的头文件,并声明自定义控件类。在自定义控件类的源文件中,需要实现构造函数、重绘函数和其他相关函数。在主程序中,需要创建自定义控件对象,并将其添加到布局中。原创 2023-12-03 18:25:34 · 1083 阅读 · 0 评论 -
Qt 自定义标题栏
隐藏系统标题栏,添加自定义按钮,以及设置窗口的拖拽事件。例如,可以通过在构造函数中设置窗口标志位,使窗口无边框、无标题栏,然后添加自定义的关闭、最大化、最小化按钮,并设置窗口的拖拽事件。然后,我们在自定义标题栏中添加了一个标签和一个按钮。标签用来显示窗口的当前标题,按钮用来触发一个改变窗口标题的操作。然而,直接修改Qt的标题栏可能会带来一些问题,因为Qt的设计是尽量使窗口系统的行为标准化。在Qt中,如果你想要自定义窗口的标题栏,你可以通过覆盖窗口的。方法将自定义标题栏设置为窗口的标题栏。原创 2023-11-28 09:06:53 · 1488 阅读 · 0 评论 -
Qt 信号与槽简介
函数的原型是 [static] QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection),参数Qt::ConnectionType type 就是Qt中信号与槽的连接方式。)和一个自定义的槽函数(名为。原创 2023-11-26 10:01:52 · 1002 阅读 · 0 评论 -
QSS特殊语法和规则
QSS(Qt Style Sheet)有一些特殊的语法和规则,这些特殊语法和规则可以让样式更加丰富和灵活。总之,QSS的特殊语法和规则可以让样式更加丰富和灵活,可以让我们更加方便地自定义Qt控件的外观。原创 2023-11-17 15:46:36 · 285 阅读 · 0 评论 -
Qt库如何利用C++的面向对象特性
总之,Qt库通过充分利用C++的面向对象特性,提供了一个功能强大且易于使用的工具集,以简化GUI和应用程序的开发过程。Qt库充分利用了C++的面向对象特性来构建复杂的应用程序。原创 2023-11-12 14:14:31 · 128 阅读 · 1 评论 -
C++ 与Qt之间的关系
C++ 和 Qt 之间有着密切的关系。Qt 是一个用于开发 GUI 和应用程序的跨平台 C++ 库,它提供了许多功能和工具,可以帮助开发者创建高质量的桌面应用程序和移动应用程序。总之,C++ 和 Qt 之间有着密切的关系,它们可以相互补充,帮助开发者更快速、更高效地创建高质量的桌面应用程序和移动应用程序。原创 2023-11-16 14:14:49 · 1256 阅读 · 0 评论 -
如何快速从C++跨越到Qt
总之,从C++跨越到Qt需要一些学习和实践,但通过掌握基本概念、布局和控件、事件处理、信号和槽以及图形绘制等知识,可以快速上手并开始开发自己的Qt应用程序。原创 2023-11-12 14:11:01 · 294 阅读 · 1 评论 -
Qt代码实现layout布局且窗口拉伸具有自动排版功能
Qt代码实现layout布局且窗口拉伸具有自动排版功能原创 2022-08-19 10:38:30 · 1714 阅读 · 0 评论