![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt
文章平均质量分 66
koilin
这个作者很懒,什么都没留下…
展开
-
如何设置QT的QToolBar里面的按钮互斥
一个ToolBar里面的按钮都是button,如果有时候这些button用来表示同一件事情的不同状态,那就需要做到这个bar里面的所有button互斥,也就是同一个时间里,只有一个是处于按下的状态。如果另外一个按钮被按下了,这个按钮就要弹起来。那么,我们的做法就是把这些需要互斥的action组成一个group,并设置一个初始的被按下的按钮。以下就是一个例子,大家可以参考。 QActionGroup *agViewGroup = new QActionGroup(this); agViewGrou原创 2020-07-11 18:08:04 · 2056 阅读 · 0 评论 -
Qt全局热键
Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等。既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了。注意,这个是Windows篇,就说明这些代码只支持windows系统。同时,也说明肯定还有其他平台的要写。不过要等O(∩_∩)O~在Qt要调用Windows的API其实很简单,只要在需要用到的头文件中转载 2012-07-17 10:49:59 · 5275 阅读 · 0 评论 -
Qt的核心剖析:信息隐藏
如果你阅读了 Qt 的源代码,你会看到一堆奇奇怪怪的宏,例如 Q_D,Q_Q。我们的Qt源码之旅就从理解这些宏说起。下面先看一个C++的例子。class Person { public: Person(){} ~Person(){} string name(); void setName(string na转载 2012-07-17 10:31:30 · 2094 阅读 · 2 评论 -
Qt的内存管理机制
这篇文章首先发布于我的主页 http://www.devbean.info,以后也会直接发布在那里。现在有 Flex 4 的一篇和 《从 C++ 到 Objective-C》系列,感谢大家支持!强类型语言在创建对象时总会显式或隐式地包含对象的类型信息。也就是说,强类型语言在分配对象内存空间时,总会关联上对象的类型。相比之下,弱类型 语言则不会这样做。在分配了内存空间之后,有两种方法转载 2012-07-17 10:34:39 · 893 阅读 · 0 评论 -
Qt读取中文文件
虽然C++标准中有了文件读取的相关类,也很好用,但是在涉及到QT编程的时候却用起来不方便了,因为QT本身很多组件都是关联的自身的QString类型的字符串,所以再用C++本身String类型的时候就不是那么方便了,需要进行转化,这样给程序带来了复杂度,同时也带来了转化的开销,所以如果用QT开发,可以就用它本身所带的这些类型进行处理,形成一个系统,便于数据在程序之中的交互和共用。 QT很好,转载 2012-07-17 10:22:55 · 644 阅读 · 0 评论 -
Qt的定时器QTimer
在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度。1.QObject类的定时器 QObject是所有Qt对象的基类,它提供了一个基本的定时器。通过QObject::startTimer(),可以把一个一毫秒为单位的时间间隔作为参数来开始定时器,这个函数转载 2012-07-17 10:07:26 · 1484 阅读 · 0 评论 -
QT右键菜单及位置捕捉问题
QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数:Qt::ContextMenuPolicy contextMenuPolicy () constvoid setContextMenuPolicy ( Qt::ContextMenuPolicy policy )Qt::ContextMenuPolicy枚举类型包括:Qt::De转载 2012-07-16 18:29:07 · 1501 阅读 · 0 评论 -
Qt动态语言切换
QT GUI提供了语言动态转换的机制并辅以相应的工具实现界面的多语言实时动态切换功能。一、 语言切换的实质当界面上有一个地方需要显示字符串strA时,在代码中对这个字符串做一个标记,当程序执行到这个标记时会去一个翻译文件中找到这个标记对应的内容,然后将此内容实际的显示到界面。所以,要实现语言切换必须做到:1、在代码中对需要做语言切换的地方要有标记;2转载 2012-07-16 18:11:44 · 1246 阅读 · 0 评论 -
Qt中translate、tr关系 与中文问题
题外话:何时使用 tr ?在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)(2b) 用tr包住中文(源码用中文,转载 2012-07-16 18:00:38 · 592 阅读 · 0 评论 -
Qt d指针简单实现及解析
[cpp] view plaincopy/*object.h*/ #ifndef _OBJECT_H_ #define _OBJECT_H_ #define INVOKE_METHOD_PRIVATE(Class) Class##Private *d_func() {return reinterpret_cast(d_ptr);}//rei转载 2012-07-16 16:27:30 · 1181 阅读 · 0 评论 -
Qt d指针简单实现及解析--威力加强版
学习d指针,怎能不研究一下q指针呢,说句实话,看完q指针后,你才会发现,它的理解其实比q指针还晦涩。把代码贴上先:[cpp] view plaincopy/*object.h*/ #ifndef _OBJECT_H_ #define _OBJECT_H_ #include #define INVOKE_METHOD_转载 2012-07-16 16:26:37 · 1410 阅读 · 0 评论 -
QDir::NoDotAndDotDot隐藏了所有的项目
在使用QDir::entryInfoList函数对目录下的文件和子目录进行遍历时, 希望将Windows中的"."和".."目录忽略, 否则总是会将"."和".."也当成子目录处理, 就造成了一个死循环. 开始用了以下的调用方式QDir("mydir").entryInfoList(QDir::NoDotAndDotDot);但是没有料到这样一来,返回的结果是个空集.转载 2012-07-16 16:09:03 · 1898 阅读 · 0 评论 -
Qt属性
Qt提供了一套和一些编译器提供商也提供的属性系统类似的完善的属性系统。然而,作为一个不依赖编译器和平台的库,Qt不能依赖像__property或者[property]那样的非标准编译器特征。我们的解决方案可以在我们支持的每一个平台上和任何标准的C++编译器一起工作。它基于元对象系统,元对象系统也通过信号和槽提供对象通讯。在类声明中的Q_PROPERTY宏声明了一个属性。属性只能在继承于QO转载 2012-07-16 14:26:31 · 767 阅读 · 0 评论 -
Qt中QSortFilterProxyModel关于多列排序的实现
在以前也使用过QSortFilterProxyModel这个类, 用它对视图进行搜索,排序等操作还是比较方便的。但是发现在排序时只允许根据一个关键字来排序,如果要实现“先根据列A升序,在根据列B降序排序”的这种需求,它就无能为力了。在网上查找关于这方面的信息或代码,发现都是有这种需求,但没有现成的例子可以借鉴。无奈之下,自行研究了Qt这个代理类的实现和源代码,找出了实现多个关键组排序的方法,在此发转载 2012-07-16 18:05:09 · 1162 阅读 · 0 评论 -
QT中的元对象系统(二):创建自定义的QT类型
我们在使用QT编程时,难免要定义自己需要的类型,但像QT自己的类型如QSzie、QString之类的,都是可以存储在QViriant中的,并且这些QT的类型是可以用在基于QObject类的类型属性中和基于信号和槽的发生机制中。如果我们想要我们自己自定义的类型可以有QT自己类型的功能的话,我们就必须注册我们的类型到QT中,这样我们才可以在我们在信号和槽的通讯机制中使用我们的类型。在我转载 2012-07-16 17:49:37 · 1686 阅读 · 0 评论 -
Qt制作Aero特效
转载请注明链接与作者huihui1988 初学QT,边看书边自己做点小东西。最近突然心血来潮,想自己做个小巧点的,界面美观一点的备忘当桌面上。想了半天,发现VISTA/WIN7的Aero效果就不错,况且自己现在就在用WIN7。于是上网找了下QT制作Aero效果的方法。Google之后终于找到了函数和用法。于是做了一个简单的Aero特效窗口以下是头文件和实现文件:转载 2012-07-17 10:57:36 · 2322 阅读 · 0 评论 -
the difference of QRectF&QRect
QRect uses integer precision and QRectF uses floating point precision. In fact, there are several other classes with this similar setup: QLine/QLineF, QPoint/QPointF, etc.转载 2012-07-17 11:05:33 · 1168 阅读 · 1 评论 -
绘图设备
绘图设备是指继承QPainterDevice的子类。Qt一共提供了四个这样的类,分别是QPixmap、QBitmap、QImage和QPicture。其中,QPixmap专门为图像在屏幕上的显示做了优化,而QBitmap是QPixmap的一个子类,它的色深限定为1,你可以使用QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap。QImage专门为图像的像素级访转载 2012-07-20 16:41:20 · 1207 阅读 · 0 评论 -
Qt编程推荐网站
QT - little_su - 博客频道 - CSDN.NETQt - 1+1=2 - 博客频道 - CSDN.NETQT - Jiangwzh - 博客园QTCN社区 - Powered by phpwindQt应用程序开发 - 移动平台碎碎念 - 博客频道 - CSDN.NETQT无标题,透明,可以移动,可以伸缩基本实现 - zhy282289的专栏 - 博客频道 - CSDN.NET奔跑的原创 2012-07-18 17:26:48 · 2627 阅读 · 1 评论 -
QPixmap与QImage的区别
QPixmap是专门为绘图而生,当需要绘制图片时你需要使用QPixmap。QImage则是为I/O,为图片像素访问以及修改而设计的。如果你想访问图片的像素或是修改图片像素,则需要使用QImage,或者借助于QPainter来操作像素。另外跟QImage不同是,QPixmap跟硬件是相关的,如X11, Mac 以及 Symbian平台上,QPixmap 是存储在服务器端,而QImage则是存储在转载 2012-07-17 21:34:58 · 1130 阅读 · 0 评论 -
Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)
转自:http://blog.csdn.net/huihui1988/article/details/5853728这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果),其分别为滑动、翻页和旋转。由于本人的Qt Creator输入中转载 2012-07-17 11:01:36 · 4348 阅读 · 1 评论 -
Qt使用QGraphicsView实现滑动窗体效果
转自:http://blog.csdn.net/huihui1988/article/details/5725955源码已上传至CSDN,http://download.csdn.net/source/2808505 QGraphicsView用来显示一个滚动视图区的QGraphicsScene内容。QGraphicsScene提供了QGraphicsItem的容器功能转载 2012-07-17 10:59:16 · 3362 阅读 · 0 评论 -
Qt实现右键快捷菜单
QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数:Qt::ContextMenuPolicy contextMenuPolicy () constvoid setContextMenuPolicy ( Qt::ContextMenuPolicy policy )Qt::ContextMenuPolicy 枚举类型包括:Qt::Defau转载 2012-07-17 10:55:24 · 2092 阅读 · 0 评论 -
Qt实现当鼠标移动到窗体上,窗体由半透明变为不透明
Qt4.7中可以设置窗体的透明度。下面的方法让窗体实现当鼠标移动到窗体上,窗体由半透明变为不透明的效果。 首先我们在窗体初始化函数中设置窗体属性: setWindowFlags(Qt::WindowStaysOnTopHint); //设置窗体置顶。如果不设置置顶,当窗体被覆盖时,其透明度的改变就观察不到了。大家可以根据具体需要设置转载 2012-07-17 10:53:30 · 1915 阅读 · 0 评论 -
Qt实现窗口自动隐藏
将窗口拖到窗口最上方,或最左方,移开鼠标,窗口自动隐藏。将鼠标移到窗口边界,窗口自动弹出,类音速启动效果from PyQt4.QtGui import *from PyQt4.QtCore import *class Geometry(QDialog): def __init__ (self): QDialog.__init__(转载 2012-07-17 10:52:07 · 9325 阅读 · 2 评论 -
Qt多线程
POINT 1:QThread类的实例与普通类的实例没什么不同,只是运行着的run()函数会不同例1: class MThread :public QThread { public: MThread(); ~MThread(); void run(); void foo(); ... };转载 2012-07-17 10:25:05 · 597 阅读 · 0 评论 -
Qt动画框架的实现
状态机框架提供了创建和执行状态图的一些类.这些概念和表示都是基于Harel状态图中的一些概念和记法.它也是UML状态图表的基础.状态机执行的语义是基于状态图XML(SCXML). 状态图提供了一种图形化的方式来对一个系统建模,从而反映它怎么响应外部触发.这是通过定义系统可能进入的一些状态以及系统怎么从一个状态转换到另一个状态(不同状态之间转变)来实现的.事件驱动系统的一个关键的特征(例转载 2012-07-17 10:20:23 · 1585 阅读 · 0 评论 -
Qt的QGraphicsView框架
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。 Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来转载 2012-07-17 09:51:56 · 2513 阅读 · 0 评论 -
简单的带动画渐隐效果
//tmainwnd.h#ifndef TMAINWND_H#define TMAINWND_H#include QWidget>#include QPushButton>class TPushBtn2 : public QPushButton{ Q_OBJECTpublic: explicit TPushBtn2(QWidget *parent = 0);转载 2012-07-17 11:13:37 · 1007 阅读 · 0 评论 -
Qt的双缓冲
双缓冲绘图在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图。使用双缓冲,可以减轻绘制的闪烁感。在有些情况下,用户要关闭双缓冲,自己管理绘图。下面的语句设置了窗口部件的Qt::WA_PaintOnScreen属性 ,就关闭了窗口部件的双缓冲.mywidget->setAttribute(Qt::WA_PaintOnScreen); 由于Qt4不再提供异或笔,组合模式QPainter转载 2012-07-17 11:10:15 · 4151 阅读 · 0 评论 -
Qt下的几种透明效果
1.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal); 试验效果: 窗体标题栏不转载 2012-07-17 11:06:33 · 866 阅读 · 0 评论 -
Qt中Ui名字空间以及setupUi函数的原理和实现
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能。 .pro文件是供qmake使用的文件,不是本文的重点【不过其实也很简单的】,在此不多赘述。所以呢,还是从main开始,[cpp] view plaincopyprint?#include转载 2012-07-16 17:39:07 · 8324 阅读 · 2 评论 -
Qt颜色相关知识
包含在一个QColorGroup对象中的颜色 Background(背景)这种颜色用作几乎所有部件的背景Base(基色)这是部件的一种背景色,它比Background多定义的颜色要浅。通常是白色,不过总是一种较浅的颜色BrightText(亮色文本)Dark用作背景时,可以用这种颜色显示文本Button(按钮)这是一个按钮的背景色,在绘制部件的其他部分之前,会用这种颜色填充它B转载 2012-07-16 17:26:32 · 1408 阅读 · 0 评论 -
Qt各种数据类型的转换
1、QString --> stringQString.toStdString();2、string --> QStringQString::fromStdString(string)3、QString --->int,double,char *QString::toInt()QString::toDouble()QString.toStdS转载 2012-07-16 17:17:54 · 840 阅读 · 0 评论 -
Qt Model/View 学习笔记 (三)
Model类基本概念在model/view构架中,model为view和delegates使用数据提供了标准接口。在Qt中,标准接口QAbstractItemModel类中被定义。不管数据在底层以何种数据结构存储,QAabstractItemModel的子类会以层次结构的形式来表示数据,结构中包含了数据项表。我们按这种约定来访问model中的数据项,但这个约定不会对如何显示这些数据有任转载 2012-07-14 10:11:45 · 1128 阅读 · 0 评论 -
Qt Model/View 学习笔记 (一)
介绍Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用。这里对model/view的结构进行了描述,结构中的每个组件都进行了解释,给出了一些例子说明了提供的这些类如何使用。转载 2012-07-14 10:06:20 · 493 阅读 · 0 评论 -
qt 字符串转换 最最详细版本
这篇文章是在Blogspot上看到的一篇文章,能够解决QString, wchar_t *, TCHAR和其他字符或字符串类型之间的转换,方便在使用Windows API的时候转换的麻烦。原文地址:http://tkrotoff.blogspot.com/2010/04/code-snippets-about-qstring-wchart.htmlhttp://blog.csdn.net/转载 2012-07-14 10:00:08 · 2465 阅读 · 0 评论 -
详解 QT 主要类 QWidget
QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 先来看内容。AD:QT 主要类 QWidget 是本文介绍的内容,QWidget类是所有用户界面对象的基类。窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形转载 2012-07-15 11:53:28 · 1278 阅读 · 0 评论 -
QStyle的关键
class MyStyle : public QCleanLooksStyle{ //以下三个函数在装载Style和卸载Style时调用,它可以是适当修改窗口部件和调色板 void polish(QPalette &palette); void polish(QWidget *widget); void unpolish(QWidget *widget); /转载 2012-07-14 11:20:56 · 616 阅读 · 0 评论 -
常见的几个C++ QT4问题的处理
1、如果在窗体关闭前自行判断是否可关闭答:重新实现这个窗体的closeEvent()函数,加入判断操作void MainWindow::closeEvent(QCloseEvent *event){ if (maybeSave()) { writeSettings();转载 2012-07-14 10:19:10 · 548 阅读 · 0 评论