
Qt
文章平均质量分 74
cfqcfqcfqcfqcfq
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Qt创建文件浏览器(续)
文件浏览器主要有三部分组成: 1 返回上级菜单按钮 2地址栏(QLinedit) 3目录显示栏(Qtreeview) 上篇文章调用系统的文件目录到Qtreeview部件中 主要实现了文件浏览器的主体功能 这一篇主要是添加一些小功能来完善文件浏览器 主要包括以下几个功能: 1 在地址栏粘贴地址 按下回车直接跳转到对应目录原创 2016-04-13 12:42:27 · 1060 阅读 · 1 评论 -
Qt:多线程中断
线程使用有两种方法,具体介绍见:http://blog.youkuaiyun.com/cfqcfqcfqcfqcfq/article/details/51627885;;关于线程中断的函数:quit() Exit() terminate();除此之外比较常用的函数(起到阻塞作用):wait() sleep() ;在线程类被析构的时候,应该习惯性的设置中断和阻塞;避免出现一些不必要原创 2016-07-27 11:18:22 · 4084 阅读 · 0 评论 -
Qt:使用Qt creator (32bit)编译Qt creator(64bit)
在官网下载的Qt安装包都会为为我们安装Qt creator 但安装包里自带的Qt creator版本是32bit 当我们安装一些使用64bit生成的插件时候 Qtcreator designer不能显示该插件。这样就可能不利于我们界面文件的生成。参考网上资料(虽然有些陈旧 但还是有一点帮助),经过自己实践 实现了自己编译64bit Qt creator. 总结出几个注意事项,方便以后参考:原创 2016-06-17 20:53:27 · 7316 阅读 · 2 评论 -
VTK-6.3.0编译(支持Qt编程)以及QVTKwidget插件安装
重新整理一下VTK编译过程(尤其是涉及到Qt方面的选项配置) 计算机系统:win10(x64) VTK版本:VTK-6.3.0 Qt版本:Qt 5.4.2(msvc_2013_x64_opengl) Cmake版本: Cmake3.5 第一步:创建两个文件夹原创 2016-06-22 17:29:50 · 7298 阅读 · 1 评论 -
c++动态类型转换
在项目中使用了QtPropertyBrowser作为属性浏览器。为了方便统一管理,将所有的属性项使用QtVariantProperty来设置。为了方便双向通信建立了两个映射:QMappropertyToId;QMap idToProperty;但在实际使用过程中发现QtPropertyBrowser中的所有信号和槽函数的形参都是QtProperty*类型。这与QMap中的类型不同,需要原创 2016-11-03 14:54:25 · 2832 阅读 · 0 评论 -
Qt:QT exited with code -1073741510
由参考文献看,这个是由于开启了事件循环,而在关闭窗口或者(Ctrl+c)结束应用时,程序被挂起,事件循环继续,直到遇到QCoreApplication :: exit()。所以在写Qt控制台程序时候,可以直接return 0,而不是使用循环。 同时发现 在调用了OPencv窗口函数显示窗口,如果直接关闭控制台窗口(显示窗口还未关闭)也会导致返回这样的错误代码 1、参考一原创 2016-11-07 15:01:16 · 3352 阅读 · 0 评论 -
Qt对话框显示opencv读取的图像
opencv和Qt结合使用,既可以发挥opencv强大的图像处理能力,又能够发挥Qt优势使其有一个良好的交互界面。用Qt对话框显示图片的核心,就是解决如何两种不同的图像数据类型Mat和QImage之间的转化。以及Qt图像显示部件的选取。查阅的参考文献多使用QLabel来显示图片。但存在图片显示不居中等问题。 Qt提供了专业的Graphic View框架用来显示和交互2D图形图像。功能十分强大原创 2016-10-19 21:37:37 · 2782 阅读 · 0 评论 -
Qt error:: write access violation at: 0x1, flags=0x0 (first chance)
错误描述: error: Exception at 0x7ff74c0565ba, code: 0xc0000005: write access violation at: 0x1, flags=0x0 (first chance) 功能描述: 设计了一个三维重建类。该类有一个进度对话框提示重建过程。当单击对话框的Cancel按钮,会将成员变量stop原创 2016-10-30 14:53:05 · 7531 阅读 · 0 评论 -
Qt:文件浏览器添加右击菜单实现重命名
先说一下主要完成了几个内容: 1、实现右击菜单(重点:如何只在Item项上面弹出右击菜单,而在空白处不弹出菜单) 2、实现重命名功能 3、使用使用委托类实现对重命名检查,后缀名更改时给予警告最后在编译程序时出现了2个编译错误(检查老半天才把问题纠察出来)。把相关错误写出来,给以后做参考!1 实现右击菜单原创 2016-04-25 21:50:25 · 3779 阅读 · 3 评论 -
Qt: 关于初始化进度对话框会自动弹出的问题
做项目中遇到一个小问题 但却没在网上找到现成的解决办法。通过看源码 给出解决办法 问题描述: 在主窗口中初始化进度对话框 通过指针传递将进度对话框传递给各个算法类中已便在需要时候开启进度对话框执行任务。 本人将Qt版本升级为5.7.1后 进度对话框会在初始化时候 就会自动弹出一次。原因是QProgressDialog在初始化函数init()中就将计时器forcetimer开原创 2016-12-19 14:54:24 · 1739 阅读 · 0 评论 -
Qt:用Dom方式读写xml文件
网上有不少介绍Dom方式读写xml文件,大部分给出的代码都不够完整。这里通过我做的的一个例子做一个完整的总结。原创 2016-11-11 08:34:46 · 1504 阅读 · 0 评论 -
Qt:自定义标题栏(QMainWindow)
简述 通过qss自定义外观后,发现标题栏的外观未发生变化,与整体的风格不融洽。因为程序的最外层边框加载的是系统本地的窗口。为了使风格统一,我们可以自定义一个标题栏来显示窗体的图标、标题,以及控制窗体最小化、最大化、关闭的按钮,并控制其风格与主界面一致。 网上有很多Qt自定义标题栏的代码。这里分享一个我觉得较好的自定义标题栏。与其他代码不同,其把对主窗口的相关原创 2017-05-22 14:45:56 · 15620 阅读 · 2 评论 -
Qt:Qt导出Excel表格
借鉴参考文献中的内容,并将其封装成一个ExcelExporter类,除了实现一些基本的写数据的功能,还增加了设置单元格样式、合并单元格的功能。在Qt中使用QAxObject类访问Com组件对象,需要在pro文件中添加下面的内容:QT +=axcontainer核心代码: /*! *新建一个excel表格 */bool ExcelExporter::newExcel(原创 2017-06-17 10:51:55 · 1716 阅读 · 0 评论 -
Qt:自定义窗口之窗口缩放
当我们隐藏了系统窗口后,无法完成对窗口的缩放,这里缩放方法通过重写一些鼠标事件来实现。具体代码如下: 头文件:#define PADDING 2class MainFrame : public QWidget{ Q_OBJECTpublic: MainFrame(QWidget *parent = 0); ~MainFrame();protecte原创 2017-06-08 12:54:40 · 3110 阅读 · 0 评论 -
Qt:基于Qt样式表的一个界面皮肤设计
简述 使用Qt样式表可以非常方便的对界面外观进行设计,相关qss教程可以参考 Qt帮助文档里的Qt Style Sheets Examples。英文不好可以看一下参考文献一的讲解内容。本人在自己的程序里设计了一个黑色的皮肤。效果如下: 相关代码; QWidget#frmLogin,QWidget#frmPopup,QWid原创 2017-05-19 17:20:29 · 7876 阅读 · 2 评论 -
Qt:QDockWidget和QScrollArea背景色设置为透明
QDockWidget和QScrollArea下面只能通过setWidget添加中心部件,不可以使用布局,如何要向其内部添加多个小部件,需要使用一个QWidget内容部件widgetContent,在widgetContent通过布局来组织所有小部件。当要设置背景颜色透明度时候直接对QScrollArea部件设置是不起作用的,需要设置其内部的widgetContent部件 如下图:原创 2017-07-04 13:28:06 · 6159 阅读 · 0 评论 -
QtIFW:制作程序安装包
程序发布方式一般有两种:(1)静态编译发布。这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中。其优势是简单单一,所有的依赖库都集中在一起,其缺点也很明显,可执行程序体量较大。(2)制作安装包发布。这种方式的原理也简单,就是将可执行程序和其依赖的库文件一起打包压缩,制作成安装包发布。用来制作安装包的工具有很多,本文讲解有Qt官方提供的一个程序安装框架:Qt installer原创 2017-06-13 22:32:45 · 7377 阅读 · 1 评论 -
Qt\c++:指针虽好用,使用有风险
学习C++有一段时间了,c++中指针是十分好用的工具,也一直听大家将存在风险,使用稍不慎就会导致野指针(指空);虽然一直明白,但从未真正遇到过此类问题。最近在用Qt做一个程序时,真正的领略了一把野指针带来的危害,真是打脸之后,才领悟到其中真谛(痛的领悟) 描述一下问题: 程序的一个大概结构:在主界面中实例化了一个进度对话框和图形浏览器;在图形浏览器下实例化了一个图原创 2016-07-27 10:25:43 · 1416 阅读 · 0 评论 -
Qt:程序桌面图标生成
Setting the Application IconThe application icon, typically displayed in the top-left corner of an application's top-level windows, is set by calling theQWidget::setWindowIcon() method on to原创 2016-07-01 16:54:39 · 530 阅读 · 0 评论 -
QtPropertyBrowser2.6在Qt Creator中的编译部署
在Qt Creator 可以看到各种属性表 这些属性表可以帮助我们明了显示各种属性 。但在Qt控件里面 去没有集成属性表 为了在我们的项目中使用属性表 可以通过QtPropertyBrowser实现。QtPropertyBrowser也是Qt主导开发的 只是一直没有被放入到Qt中 要使用该控件 要自己下载编译部署。 网上有一些qtpropertybrowser的安装教程 但都是对VS环境下原创 2016-04-27 09:40:34 · 1766 阅读 · 0 评论 -
QtCreator:项目中文件按类别放入不同子文件夹
当我们的工程比较庞大 有很多头文件和源文件时候 我们希望可以把他们按照类别放入不同的文件夹 以一个目录树的形式呈现给开发者 这样会比较清楚的找到我们要的文件夹 如下图所示: 为了实现原创 2016-04-14 13:19:40 · 14500 阅读 · 2 评论 -
关于多个信号链接到相同槽函数区分信号发出者
问题描述: 多个Qbutton 起发出的信号链接到同一个槽函数中, 在槽函数中要根据信号发出者的不同做不同操作 要用到qobject_cast(),qobject_cast()函数和标准C++的dynamic_cast()功能类似,只是其不需要RTTI的支持,而且可以跨越动态连接库的边界。它尝试将它的参数cast成尖括号内的对象类型,如果对象是正确的类型(运行时决定)则返回非零,转载 2016-04-11 19:00:29 · 667 阅读 · 0 评论 -
Qt 创建文件浏览器
摘要: 使用Qt来实现文件浏览器 主要有两种方式: 一种,使用QDir获取目录列表,使用QListWidget作为视图窗口显示目录。获取目录列表的核心函数是: QDir::entryInfoList; 其返回值类型 QFileInFoList 文件信息列表,可以获取文件的各种信息 QFileInfoList原创 2016-04-11 19:01:46 · 1439 阅读 · 0 评论 -
Qt:QTableWidget 使用的相关问题
QTableWidget可以用来显示表格数据 是一种相对来说比较常用的部件。和QTableView相比,其在内部已添加了标准模型 不需要用户在添加模型。虽然灵活度下降 但是使用相对方便。网上有很多资料讲了该部件用法(参考文献1)。这里讲一下自己使用时 遇到的一些问题: 1 不能设置表头的背景颜色。 虽然参考资料中给出了设置表头背景色的办法 但使用起来却无效。在论坛中看到有人讨论(原创 2016-05-10 17:57:28 · 530 阅读 · 0 评论 -
QLatin1String类
QLatin1String类对US-ASCII/Latin-1编码的字符串进行了封装。 许多QString的成员函数都用const char*代替QString作为参数实现重载。这包含拷贝构造函数,赋值操作,比较操作和其他不同的函数,比如insert(), replace(), indexOf(). 这些函数都做了优化以避免在函数调用时从const char*中构造一个QStri转载 2016-05-11 19:41:10 · 439 阅读 · 0 评论 -
VTK交互
说到VTK交互,马上会想到的就是vtkRenderWindowInterator。他是VTK的交互类 可以响应各种的鼠标/键盘/时钟等消息事件。今天阅读了大量资料,关于如何给交互器增加或更改交互事件。在这里梳理一下,给以后做个参考。 在一篇VTK官方文档翻译中 看到大的方向先分为两大类(参考文献1):VTK两种不同的方法控制交互:(1)使用vtkInteractStyle的子类 (2)添加Obse原创 2016-04-29 16:13:03 · 5354 阅读 · 0 评论 -
Qt: 进度对话框的使用
在执行长时间任务时,如果没有进度条,用户很难把握任务完成进度,而且如果耗时太长或误操作 没有进度条就无法取消任务。对于GUI程序,还会导致主界面假死现象。所以对于一个长时间任务 添加一个进度条是很有必要的。在Qt中提供了QProgressDialog和QProgressBar两种方式提示进度。因为之前在项目中用了进度对话框。在这里简单整理一下进度对话框的使用。 进度对话框也是分为模态和原创 2016-05-01 10:25:05 · 1326 阅读 · 0 评论 -
Qt:事件和事件循环
最近想要了解一下Qt线程,但在对相关资料师都是从线程和事件循环开始将。对于事件循环是个相对很抽象的概念,研究了很久也很难在脑子里建立起一个具体的模型。今天在这里对这几天研究内容做总结,为以后做参考。 先说事件,网上很多资料都将的很清楚。在这里重点是明确一下一个事件发出后对于该事件的一个调用顺序。在这里我们在QApplication安装一个过滤器,在一个一个Qwidget安装一个过滤器原创 2016-05-05 11:05:25 · 7173 阅读 · 0 评论 -
VTK:基于Qt的VTK右击菜单实现
前面试过在Qt中实现右击菜单Qt右击菜单 现在尝试在嵌套在Qt中的VTK窗口实现右击菜单 原有方式不能成功。原因也很简单:在VTK窗口发送的是VTKEvent 所以Qt中的contextMenuEvent(QContextMenuEvent *event) 不会处理该事件。所以要另谋出路 翻阅VTK文档发现了一个实现右击菜单的实例 贴出来与大家分享: void GUI4::popup(v原创 2016-05-07 13:38:49 · 2364 阅读 · 1 评论 -
Qt:内存管理
在c++中 我们创建的对象分为两种情况:1 在栈中创建的对象 2在堆中创建的对象。 第一中情况:是由编译器为我们管理,当离开作用域时候 编译器会析构对象。 第二种情况:需要自己管理 我们在每当new 一个对象就要有一个对应的delete 一般情况下 在构造函数或初始化列表中new对象 在析构函数中delete Qt是C++库,所以是遵守c++内存管理的原则,但是在内存释放原创 2016-05-18 14:44:35 · 609 阅读 · 0 评论 -
QSetting读写注册表
注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。一个应用程序读取注册表就可以实现将自己程序的配置信息放到本地,这样程序初始化时候就可以获取这些本地信息恢复默认设置。 在Qt中相关功能由QSetting完成实现。Qt文档中相关描述:The QSe原创 2016-05-19 16:56:18 · 2128 阅读 · 0 评论 -
QVariant
详细描述:QVariant类作为一个最为普遍的Qt数据类型的联合。因为c++禁止没有构造函数和析构函数的联合体,许多继承的Qt类不能够在联合体当中使用。(联合体当中的变量共用一个存储区),没有了联合变量,我们在物体属性以及数据库的工作等方面受到很多的困扰。一个QVariant对象在一个时间内只保留一种类型的值。我们可以使用canConvert来查询是否能够转换当前的类型。转换类型一般以转载 2016-04-25 09:11:31 · 3926 阅读 · 0 评论 -
Qt:信号槽机制传递复杂类型参数(窗口通信)
通过Qt的带参信号可以很方便实现参数传递。但有一个问题,一般定义的信号都只有一到两个参数。如果你想传递很多参数时候会出现限制,当然你也可以让你定义的信号带多个参数,但那必然是很繁琐的事情且代码会显得很臃肿。解决这种复杂参数传递的一个思路就是实现一个容器来装载多个参数。在Qt中QMap就是一个很好用的容器来实现多参数传递,这是一个关联容器。通常原创 2016-06-03 21:44:11 · 3814 阅读 · 0 评论 -
使用QWT实现折线统计图
QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图最近两天对QWT有一个简单的学习,不敢说完全掌握了,但还是完成了简单的统计图绘制,在这里做个总结,方便自己以后浏览一个简单的实例,其基于VTK获取图像直方图的数据,然后由QWT负责显示折线图大概用到的类class vtkImageAccu原创 2016-06-04 17:15:10 · 2711 阅读 · 0 评论 -
Qt:多线程
UI程序经常会遇到的一个问题是在执行一个长时间任务时,UI线程被阻塞,导致假面出现假死现象,之前文章也有介绍解决办法(比如使用一个进度对话框)。今天主要是通过开启一个线程方式来解决UI线程阻塞问题。想要使用线程就需要对Qt多线程编程有一个了解。原创 2016-06-28 17:50:24 · 848 阅读 · 0 评论 -
qt creator 快捷操作
qt:ctrl + a 全选文本ctrl + i 对齐和vc的alt + F8一个效果原创 2016-07-01 10:07:19 · 314 阅读 · 0 评论 -
Qt:樱花飞舞效果
应女友要求,使用Qt做了一个在电脑桌面樱花飞舞的小程序。这里面用到了Qt动画效果QPropertyAnimation类来控制飞舞效果。使用label加载樱花图案。大概的核心代码如下:Widget::Widget(QWidget *parent) : QWidget(parent), timer(new QTimer(this)), pixmap(new QPixmap(":...原创 2018-04-25 20:13:09 · 953 阅读 · 0 评论