QT
allenxguo
C++
展开
-
Qt控件焦点切换
人们日常切换控件,例如QQ登陆的账号和密码输入框就可以通过Tab键切换焦点。 图1 qq切换焦点 Qt中QWidget提供了一个静态方式实现该效果 其中也包含介绍使用[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)Puts the second widget after the first widget原创 2017-05-25 17:29:29 · 3715 阅读 · 0 评论 -
Qt实现桌面截屏
实现桌面截屏,软件如下: 图1 桌面截屏 主要介绍一个方法grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1)创建并返回一个QPixmap,通过抓取给定窗口的内容(x、y、width、height)。 参数(x、y)指定窗口中的偏移量,而(width、height)指定要复制的区域。如果宽原创 2017-06-06 17:21:51 · 4141 阅读 · 0 评论 -
Qt软件开启闪屏
实现软件开启闪屏的效果,如下: 图1 软件闪屏效果下面看一下具体实现 首先介绍一下 QSplashScreen这个类提供了一个可以在应用程序启动时显示的闪屏的效果。 启动程序是一个控件,通常在启动应用程序时显示。在长时间启动的应用程序(如数据库或网络应用程序,需要时间建立连接)为用户提供应用程序正在加载的反馈信息,这些应用程序中经常使用这种效果。 在屏幕的中央出现了闪屏。如果你想把它放原创 2017-06-06 16:10:33 · 1659 阅读 · 0 评论 -
QGraphicsScene的碰撞检测
实现效果如下 图1 移动的Item碰撞显示 图2 碰撞的Item都显示使用Scene的碰撞检测函数QList< QGraphicsItem *> collidingItems(const QGraphicsItem *item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const文档解释Returns a list of原创 2017-05-22 12:19:54 · 8511 阅读 · 2 评论 -
QGraphicsScene中Item缩放问题
缩放过程中有两种实现效果 图1 缩放view 图2 缩放scene 可以看出缩放view时Item显示也会跟着放大缩小,缩放scene则Item显示大小不会随之变化。Item几何信息是根据View视口而定?源码 //此时View设置大小为400X300scene->setSceneRect(0,0,4000,3000);QGraphicsRectItem* item = new原创 2017-05-22 10:38:50 · 11811 阅读 · 5 评论 -
Qt动画框架-(1)简介
动画框架Qt的动画框架旨在提供创建动画和流畅GUI的简单方法。通过动画化Qt属性,该框架为动画小部件和其他QObject提供了极大的自由。该框架也可以与Graphics View框架一起使用。动画框架中可用的许多概念也可以在Qt Quick中使用,它提供了一种定义动画的声明方式。关于动画框架的许多知识可以应用于Qt Quick。 在本概述中,我们将介绍其架构的基础知识。我们还展示了框架允许动画化Q原创 2017-06-01 10:31:32 · 321 阅读 · 0 评论 -
Qt动画框架-(3)分组动画
这一节简单介绍分组动画 准备工作 Widget w; TransparentWidget t; //透明窗体 QLabel pix; QPushButton btn("一个按钮"); pix.setPixmap(QPixmap("E:/pic/poi2.jpg")); pix.setParent(&w); w.addItem(&pix);原创 2017-06-01 11:55:22 · 355 阅读 · 0 评论 -
Qt动画框架-(2)Qt动画和属性
Qt动画和Qt类属性QPropertyAnimation类可以在Qt属性中进行插值。 属性值一般是类中的get/set方法,或者直接查看源码: //QWidget的属性(一部分) Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry) Q_PROPERTY(QRect frameGeometry READ fram原创 2017-06-01 11:15:18 · 966 阅读 · 0 评论 -
Qt的文件和目录操作
QIODeviceQIODevice类是Qt中所有输入/输出设备的基本接口类。QIODevice为支持读取和写入数据块的设备提供了一个通用的实现和一个抽象接口,例如QFile、QBuffer和QTcpSocket。QIODevice是抽象的,不能被实例化,但是使用它定义的接口来提供设备独立的输入输出特性是很常见的。例如,Qt的XML类就相当于一个QIODevice指针操作,允许它们与各种设备(如文原创 2017-05-31 15:43:49 · 3330 阅读 · 0 评论 -
Qt透明窗体
在日常使用的软件中,一些弹窗效果、设置透明度的都可以使用设置透明窗体的方法实现。 在Qt中QWidget有一个方法void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)Sets the attribute attribute on this widget if on is true; otherwise原创 2017-05-27 11:21:58 · 733 阅读 · 0 评论 -
Qt和设计模式-画板的备忘录
备忘录模式概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以很方便的回到一个特定的历史状态,当前很多软件都提供了撤销(Undo)和恢复(反撤销)操作,其中就使用了备忘录模式。备忘录模式定义 备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为To原创 2017-05-27 10:10:19 · 949 阅读 · 0 评论 -
Qt无边框窗体移动和缩放
使用setWindowFlags(Qt::FramelessWindowHint);设置后的窗体是不可以移动、拉伸的,所以为了让无边框窗体移动就需要自己重写一些事件实现。 效果如下 图1 拖拽窗体 (注:当窗体左上角、左边、上边拖拽时会有抖动,有些电脑却没有这种情况。。具体为啥我也不知道( ⊙o⊙?))具体实现(九宫格法) 把一个窗体划分为9个部分如图 图2 九宫格 鼠标位于22原创 2017-05-27 16:08:02 · 3896 阅读 · 0 评论