Qt
文章平均质量分 60
灏夏星辰
QT开发
展开
-
C++智能指针
必须包含头文件#include <memory>std::auto_ptr 在C++11中被废弃 采用所有权模型std::auto_ptr<Class> className;采用所有权模型,当值被其他auto_ptr赋值时,所有权交予他人,本指针变为空地址例如:std::auto_ptr<Class> className1(new Class()));std::auto_ptr<Class> className2(className1);此原创 2021-12-07 22:01:41 · 1070 阅读 · 0 评论 -
Qt下监测内存泄漏
在写Qt应用程序时,由于是采用C++语言,经常会碰到一个令人棘手的问题,那就是内存泄漏,虽然后面C++为了防止内存泄漏,发布了智能指针以用来避免内存泄漏,但是并不能完全避免。而且智能指针使用不当,同样会造成非常严重的问题。这里智能指针就不在赘述,有机会我再写篇智能指针的博客。 为了预防内存泄漏问题,我们手动写一个宏,用来监测该类是否析构,若未析构,则将该类打印出来,这样可以更好的定位问题。代码如下:定义一个帮助类,用来计数,当注册的类声明时,计数+1,当类析构时,计数-1,若在该类析构...原创 2021-12-06 22:32:53 · 3107 阅读 · 2 评论 -
Qt动画分享
在使用Qt制作界面的过程中,经常会用到Qt的动画,Qt自带的动画框架用来做简单的控件动画效果是比较简单易用的,比如对控件的位移、缩放、透明度等,可以提高界面的科技感。原创 2021-12-01 16:21:07 · 2841 阅读 · 7 评论 -
PC客户端国际化解决方案(Qt)
1Qt语言家Qt针对世界各个地区不同国家不同语言,给出了统一的国际化解决方案,那就是Qt语言家(如图1所示),英文名叫Linguist。在我们日常编码中,经常在代码中会出现一些字符串,在不同的语言环境下,可能会需要显示不同语言对应的文本。针对多语言切换的需求,Qt提供的解决方案是,在所有需要翻译的字符串处都使用QObject::tr()函数,Qt提取出所有QObject::tr()函数的参数,使用Qt语言家对其进行翻译后发布,Qt程序可以在运行时加载发布的翻译文件以更新文本字符串。Qt语言家不仅可以解.原创 2020-12-10 09:51:12 · 657 阅读 · 0 评论 -
PC客户端换肤解决方案(Qt)
1Qt样式表QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有的属性都可以用在Qt的所有控件上。注意:QSS会对各种控件提供不同的样式表支持,对于特殊的样式,可以利用筛选器配合Qt控件代码中的ObjectName,对其进行筛选,当然ObjectName可以多个控件都叫一个名称,QSS会将名称一样的设置为一样的样式,若未进行.原创 2020-12-10 09:42:05 · 674 阅读 · 4 评论 -
Qt学生信息管理系统
本来是拿来做毕业设计的,但是名字太土了,老师没让做毕业设计,下面是学生信息管理系统的图片,具体实现功能,使用了MySQl数据库,重写了MessageBox,文件解析,分别解析了xml文件,INI配置文件,以及JSON数据,并且学生数据可以使用Excel进行导入导出,学生信息管理系统可以跳转到学校学院网站以及学校教务处网站,还能进行本地视频播放,查询省或者市的天气预报,采用了QSS布局,以及画图控件原创 2017-07-13 21:59:10 · 6531 阅读 · 6 评论 -
Qt读取pdf文件使用MuPdf库
Qt打开pdf文件,效果如下: 打开pdf文件 加载进程序 运行时,别忘了把dll文件放入Release目录下,不然会crash的,运行不了。Qt读取pdf文件采用的是mupdf库。将编译好的库文件放入工程目录下include和lib 在该工程中的.pro文件加入外部库,我使用的是64位的库文件,mingGw32位的请使用x86的库文件,添加include库文件原创 2017-07-15 17:12:34 · 14885 阅读 · 15 评论 -
Qt调用Python脚本
因为Python库比较强大,所以就采用Qt去调用Python脚本进行项目开发,下面是Qt调用Python脚本,结合CPython进行传值等使用的编译器是QtCreater5.6使用Python版本是Python3.4 在调用Python脚本时,先将Python的库文件以及头文件导入INCLUDEPATH += -I C:/Python34/includeLIBS += -原创 2017-09-01 17:53:14 · 44766 阅读 · 18 评论 -
QT使用属性页qtpropertybrowser
将属性页qtpropertybrowser,放到项目目录下在项目.pro中添加include($$PWD/qtpropertybrowser/src/qtpropertybrowser.pri)然后就可以将qtpropertybrowser添加至项目文件中了在界面中拉一个widget控件,定义控件名称为 widgetProperty,将该控件提升为qttreeprope原创 2017-09-01 18:06:01 · 3864 阅读 · 8 评论 -
QT自定义TitleBar
头文件#ifndef TITLEBAR_H#define TITLEBAR_H/*************************************************功能:重写标题栏作者: YYC时间:2017-10-13*************************************************/原创 2017-11-08 16:21:43 · 3865 阅读 · 1 评论 -
Qt高清DPI下的显示,自适应分辨率
针对Qt要在windows高清DPI下进行显示,且相对于在分辨率下1920*1080上显示无异常,下面有几种方案:方案1:使用配置文件qt.conf在Qt配置文件qt.conf文件中进行配置,其中0,1,2对应Windows函数中的枚举变量,此种方案可以在DPI每次增加%25界面都会有相应的变化。详见Qt帮助文档https://doc.qt.io/qt-5/highdpi.html缺...原创 2019-08-14 20:36:31 · 15039 阅读 · 8 评论 -
Qt开源炫酷界面QCoolPage
背景介绍做开发有大概三年时间了,先后做过MFC,上位机(Qt),游戏服务端(C++),HTTP客户端(Qt)以及使用Qt做精美UI架构,也是积累了一些Qt方面的心得,对Qt也是很熟练。心血来潮,总结了一些做UI的思路,代码都是自己想着写的,如果有什么好的建议,可以联系我,这个开源项目我会一直更新的。具体内容:1.轮播图:2.进度条:3.柱状图:4.面板:5....原创 2019-09-08 21:58:04 · 62053 阅读 · 120 评论 -
Qt使用poppler读取pdf
QT运行环境是QtCreater5.6 MinGW32位,先将编译好的poppler库文件放到项目目录下将头文件include文件夹放入项目路径下将头文件lib文件夹放入项目路径下将dll文件放到release目录下,不然会crash的然后链接外部库.a文件如下图下面是MainWindow.cpp文件内容#include "m原创 2017-09-14 14:24:42 · 10020 阅读 · 11 评论 -
QSS样式表
关于QPushButton的样式表QPushButton{background-color:rgb(134,183,200); //背景色border:2pxsolid #5F92B2; //边界和边界颜色border-radius:5px; //边界圆滑color:white; //字体颜色}QPushButton:hover{backgr原创 2017-09-05 22:46:48 · 4270 阅读 · 0 评论 -
Qt5.6 用SQLite数据库验证做登录框,并查删改xml文件做记住密码和自动登录<二>
写界面资源,以及控件的各种命名: 用户名编辑框命名为comboBoxUserName ,改变样式表添加背景色白色密码控件的命名为lineEditPassWord 改变样式表添加背景色白色记住密码复选框命名为checkBoxRemeber自动登录复选框命名为checkBoxAuto登录按钮命名为pushButtonLogin原创 2016-09-08 21:34:19 · 2145 阅读 · 1 评论 -
Qt5.6 用SQLite数据库验证做登录框,并查删改xml文件做记住密码和自动登录<一>
你绝对能够实现,使用QT5做登录框,其中用到重写标题栏,使用SQlite验证登录是否成功,使用xml文件读取数据库名称,数据库版本等,将用户记住密码的以及自动登录的存储到xml文件中达到我们想要的效果原创 2016-09-08 20:29:19 · 3699 阅读 · 0 评论 -
Qt5.6 自写封装MessageBox类
1.效果图如下所示2.代码如下,.h文件2.代码如下,.h文件#ifndef MESSAGEDIALOG_H#define MESSAGEDIALOG_H#include #include #include #include #include #include #include #include #include原创 2016-12-27 22:10:07 · 3608 阅读 · 0 评论 -
Qt读取三种文件,ini配置文件,JSON文件,和xml文件
第一种读取INI配置文件INI文件内容如下:[conn]ip=127.0.0.1port=8080databaseversion=QSQLITEdatabasename=studentusername=YYCpassword=rootqreadini.h文件内容如下:#ifndef QREADINI_H#define QREADINI_H#inclu原创 2017-07-13 22:28:32 · 7996 阅读 · 0 评论 -
Qt自定义菜单栏
在头文件中加入/****************创建菜单栏目***************/void createActions(); /****************重写菜单事件函数***************/void contextMenuEvent(QContextMenuEvent*event); QMenu *menu;QAction*copy;原创 2017-07-15 11:22:27 · 1438 阅读 · 0 评论 -
Qt5.6 用SQLite数据库验证做登录框,并查删改xml文件做记住密码和自动登录<三>
根据以上所述是可以进行登录,后台数据库验证了,我们需要记住密码等一系列操作,方便用户登录,使用对Xml文件的查询和删除进行实现,login.xml文件内容如下所示xml version='1.0' encoding='UTF-8'?>data> user id="1"> username>1305120114username> passwo原创 2016-09-09 22:08:47 · 1430 阅读 · 2 评论 -
Qt使用QSS
1. 新建工程Qss,父类为MainWindow2. 在工程目录下,新建文本文档style.txt,将后缀名改为.qss,即为style.qss3. 新建资源文件qss.qrc,在该资源文件中添加新文件style.qss,4.在style.qss中添加下列代码,改变程序中控件的样式QMainWindow,QTabWidget,QTableWidget,QLin原创 2017-07-13 21:55:58 · 1913 阅读 · 0 评论 -
Qt重画标题栏
1. 在头文件中添加下列三个函数//鼠标点击标题栏,重新实现拖动操作void mouseMoveEvent(QMouseEvent*event);void mousePressEvent(QMouseEvent*event);void mouseReleaseEvent(QMouseEvent*event); 2. 在头文件中添加下列三个槽函数原创 2017-07-13 22:16:51 · 2740 阅读 · 2 评论 -
Qt重写事件,画图事件,拖拽事件,进入离开事件等
重写事件例子具体演示效果 滑动滚轮可以使矩形区域改变,使用的是滚轮滚动事件和画图事件如下图 使用鼠标的点击滑动和释放三个响应事件可以画出任意大小的矩形域 使用拖入事件和释放事件,可将文本内容读取到文本框 使用键盘事件,点击F5键,可将文本内容清空 使用鼠标双击事件可将程序满屏,双击满屏,再双击退出 使用鼠标进入事件和离开事件改变鼠标样式进入是手型鼠标原创 2017-07-15 14:21:26 · 2446 阅读 · 0 评论 -
Qt国际化实时切换
创建QT国际化例子 在TranslateDemo.pro中加入 加入后保存.pro文件,然后使用Qt语言家更新翻译 会生成两个ts文件,如下图 这两个ts文件可以直接用Qt以文本形式打开,或者使用Qt语言家Linguist打开,我更习惯用文本形式打开,打开english.ts是如下的一个xml格式的文件 将其属性type = "unfinished"所有去掉原创 2017-07-15 14:25:31 · 615 阅读 · 0 评论 -
QT 2D绘图学习文档
1. Qt进行绘图时,要重写绘图函数void paintEvent(QPaintEvent *);2. 定义绘图对象QPainter painter(this);2.将坐标系的该点变成原点坐标painter.translate(100,100);3.设置画笔颜色QPen pen(Qt::black,3,Qt::SolidLine,Qt::RoundCap,Qt::Rou原创 2016-09-09 22:55:26 · 552 阅读 · 0 评论