QT QGraphicsView update 实时刷新问题 [问题点数:100分]

Bbs1
本版专家分:0
结帖率 40%
Bbs4
本版专家分:1503
Bbs1
本版专家分:0
其他相关推荐
转:QGraphicsView 的刷新update问题
众所周知,QGraphicsView的绘图操作主要是在paintEvent(相对于VC里的 OnDraw函数)函数里完成, 如果要手动重绘一般调用update或repaint,(这两个函数都会调用paintEvent完成重绘工作) 看官方帮助文档建议用update因为update相对做了很多优化工作,而repaint则没有。 但是在实际使用时发现,直接使用updateupdate都不能完成
QGraphicsView 中不能刷新的解决方案
在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面,对此有两个解决方案: (1)调用 viewport 的update函数 (2)调用场景的update(),才能重绘
QGraphicsItem调用update函数的原理
问题1:假如在一个场景中有多个QGraphicsItem(例如a,b,c,d,e,f,g),调用其中一个QGraphicsItem (例如a)中的 update()函数。 是不是 执行了a 所在的 QGraphicsView 中的paint函数 和 所有界面能显示出来的QGraphicsItem(例如 a,b,c,d能看到 e,f,g不能看到) 中的paint()函数。 问题2:当多个QGr
QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
Qt刷新机制的一些总结
前段时间做过一个界面刷新的优化,遇到的坑比较多,在这里做一点点总结吧。     优化的方案是滚动滚动条的时候用截屏的方式代替界面全部刷新,优化完成后,界面在滚动时效率能提升大概一倍,背景介绍完毕。     用到最主要的是QT的截屏功能     window原生api会提供截屏滚动的功能。可以用这个ScrollWindowEx这个api。它会根据相应的参数在屏幕中进行滚动相应的区域
关于QGraphicsView的坐标系
关于其坐标系: QList lights; QGraphicsScene *scene=new QGraphicsScene(); QGraphicsEllipseItem *light=new QGraphicsEllicsEllipseItem(100,100,90,90); lights.append(light); for(int i=0;i {      //lights.
如何使用QT的QPainter绘图和实时刷新?
如何使用QT的QPainter绘图和实时刷新? 2011-06-24 本文行家:_张_巍_ Qt是个很不错的GUI,现在已经更新到4.7了。最近的项目中用到了它,需要实时的显示一个画面,这就需要定期的刷新画面,本文章记录了使用QPainter类绘制图形的步骤,供参考。 Qt是个很不错的GUI,现在已经更新到4.7了。最近的项目中用到了它,需要实时的显示一个画面,这就需
Qt工作笔记-QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
转载地址:https://blog.csdn.net/tianyuan521521/article/details/46290525前言最近一直使用QGraphicsView框架在我的一个实际项目中,官方文档好多都没说清楚啊,有木有?!文档都翻光了,却还是有好多没明白。 一个令我恼火的bug就是,明明log打出来的每个Item的坐标都是预期的,但为什么最后结果不对呢? 我在视图中添加了一个直线项(...
关于QtGraphics编程的几点经验总结_qgraphicsscene
QtGraphics主要由三部分组成,分别是View,Scene, Item。
QGraphic view实例:利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞
运行环境为Window XP 利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞 实验内容与分析设计 利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞 实验步骤与调试过程 第一步:     Ctrl+N新建工程  其他项目---空的Qt项目   命名为butterfly 步骤二     Ctrl+N  新
Qt 绘图原理及更新已绘好的图像
Qt绘图原理及更新 Qt绘图要用到QPainter类,绘图的设备通常是主部件,也可以是QLabel部件或QTextEdit部件,通过一定的算法实现可以绘制出很漂亮的图形或我们需要的图形。 绘制时需要先定义一个QPainter类对象,绘制可以选择的道具可以使Qpen(画笔)、QBrush(画刷)。使用QPen写文本时还可以指定字体(QFont类) 如下面一段代码: QPanter p...
QT 界面刷新
    QT对界面的调整有很多种形式,如果发现界面样式不正常,通过缩放窗口,或者某项鼠标操作才正常,可能是你的窗口没有正常刷新。可以试试以下方法1. update()函数,实质上是调用了repaint函数,但是不是同步的,就是repaint函数可能不会立即执行。调用多次update()可能只执行了一次repaint()函数。void QWidget::update()2.就是直接调用repaint...
Qt 界面刷新崩溃、异常
Qt程序在海思hi3531a开发板上,多次update()刷新界面后程序异常崩溃 hi3531a qt程序运行后,多次update后程序挂掉 http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=23327&fromuid=19660 (出处: 易百纳论坛)
解决QGraphics体系执行动画时不刷新问题
这里讲的是QGraphics在处理动画时的刷新问题。这是不是我们期待的效果: 问题出现原因: 1、QGraphics体系处理动画效果问题,QWidget暂时没遇到这种问题。 2、QPropertyAnimation处理动画。 解决方案: 在动画执行的过程中利用信号与槽执行刷新。 解决方案代码: 解决后效果:
QGraphicsView系统坐标映射关系
如果你英文足够好,可以参考Qt帮助文档中的:The Graphics View Coordinate System。 --------------------------------------------------------------------------------------------------------------------------- 首先,先上显示界面图(Embe
QGraphicsView大于QGraphicsScene时出现滚动条时,改变scene的显示位置
开发环境Qt5.6  Windows10 当在使用QGraphicsView时,我创建了一个QGraphicsView大小为 800 * 600 ,但我创建了一个QGraphicsScene大小为800 * 1000时,view自动出现了滚动条。 效果图如下: 默认的滚动条位置在大概中间的位置。很尴尬,我想要让它显示与最上面的位置。 在网上查找解决方案,发现并不能用_photo_v
交互式 QGraphicsView(平移/缩放/旋转)
Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。
QGraphicsView 中实现拖拽
开始想使用QGraphicsView结合QGraphicsScene和QGraphicsItem,做个绘制各种图形的编辑器,想使用拖拽实现快捷方式,没想到还有点波折。 已在QGraphicsVews中设置了setAcceptDrops(true); 在运行时发现:当把
QGraphicsView改变光标的样式
QGraphicsView中Item上默认的光标形状是一个手型,用于拖拽。但是下某些应用场景下,我们想要让光标变成其他的形状,比如十字形等。以下是一些解决方案: QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式 Changing the cursor in a QGraphicsView 上述方面主要就是子类化QGraphicsView,然后viewp
qgraphicsView设置背景透明,控件不透明
mView.setAttribute(Qt::WA_TranslucentBackground,true); QPalette myPalette; QColor myColor(100,100,100); myColor.setAlphaF(0.2); myPalette.setBrush(mView.backgroundRole(),myColor); mView.setPale
Qt工作笔记-视图(QGraphicsView)的放大和缩小(通过滚轮)
程序运行截图如下:   关键的函数:   逻辑:通过滚轮事件,识别滚轮放大上移还是下移动,调用这个函数 源码如下: mygraphicsview.h #ifndef MYGRAPHICSVIEW_H #define MYGRAPHICSVIEW_H #include <QObject> #include <QGraphicsView> QT_BEG...
QT 绘制 局部刷新的N中方法
n个方案: 1、void QWidget::update ( const QRegion & rgn ) 这个update本身就能够只跟新指定区域的; 2、使用QImage类,操作一个图片的单一的像素点,然后用个定时器,不断的让你的图片在label里显示;即将所有东西都画在一个影子位图中,然后只在重画的时候画影子位图 3、参考文档主页,examples下,Graphics View下的 C
关于使用DirectX在QGraphicsView上播放视频的探索
最近注意到有人遇到了一个我半年前遇到的问题,我将半年前自己的探索写出来供大家参考,希望对大家有帮助,如果有错误的地方希望不吝指教。如果解决了问题,请告诉我。 大约半年前遇到了此问题,使用DirectX在QGraphicsView上播放视频。 由于当时项目比较急,一直没有解决。后来就换了QMdiarea代替了QGraphicsView框架,实现了directx通过窗口句柄(即WInId)播放视频
QListWidget动态刷新问题和解决 #Qt Creator
问题: 我想做一个ListWidget,放置一些ListWidgetItem为ip地址和端口号,然后点击一个按键去开始检查每个item的地址能否连接。 在检查的同时,给能连接的Item的字体颜色设为绿色,将不能连接的设红色。 但是这一系列的操作都是封在一个槽函数当中的,导致点击的结果是等待一段时间,然后整个ListWidget的颜色一起发生变化。 而不是随着检查一点一点动态的发生变化。
【Qt5】频繁调用update()若干时间后无法自动重绘界面的问题
最近在项目中遇到了这样的问题:程序的结构:主线程用于界面控制,线程1用于生成显示内容,线程2用于精确控制在正确的时刻控制界面显示生成的内容。实现方式:在线程2中直接调用显示控件的update()方法,让主线程重绘。运行效果:运行开始后的一段时间能够正常工作,但是几个小时后,会出现调用update()方法不能让控件重绘,显示控件一直显示旧的内容。但是可以通过缩放界面窗口等方法,让窗口自己重绘,能显示...
Qt浅谈之十八:GraphicsView框架事件处理
一、简介        简介 二、运行图 (1)如下图1所示。 三、详解 1、开始 (1)开始 四、总结 (1)本博文只发布部分源码,读者可根据思路来进行定制。 (2)在不同的系统下可能还会有乱码出现,可修改程序实现,主要当初没考虑到国际化支持。 (3)源码已经打包上传到csdn上可登录下载(http://download.csdn.net/deta
QGraphicsView 的使用(滚轮缩放)
1. 继承QGraphicsView;class MyGraphicsView : public QGraphicsView2. 重写构造函数MyGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);3.设置 scene 尺寸scene->setSceneRect(0, 0, 1280, 720);4. 重写paintEvent 函...
QWidget 页面刷新
我们采用的是MVC架构,View 的基类是QWidget,某些复杂的页面中执行某一操作后,如移动某一actor,总感觉actor移动的速度很慢,解决方案:刷新页面效果会好一些,即调用QWidget的update();
OpenGL在QT里的刷新问题
参考http://www.cnblogs.com/dabaopku/archive/2011/11/14/2247721.html 在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面 要调用 viewport 的update函数!!! 给GraphicsView设置这么一个属性se
Qt中QGraphicsView三种坐标系统详解
在QGraphicsView中支持三种不同的坐标系统---视口坐标、场景坐标、项坐标 场景坐标就是系统窗口(QGraphicsScene)的坐标,它(0,0)作为它的左上角坐标. 视口坐标相当于场景坐标的数学变换,如当一个窗口坐标为(0,0)至(100,100)那么这个窗口就是实实在在的由100*100个像素组成,此时把坐标变换为(-50,50)(即场景坐标(0,0))至(50,-50)(即场
如何使QGraphicsItem不随QGraphicsView放大缩小而改变大小
一、简述在使用QGraphicsView过程中,有时候我们需要对view进行缩放,但是对于一般正常的加入view中的item都会随着view的大小变化而变化,但是如果我们想让某些item不随view的缩放进行改变怎么办呢?很简单,下面讲述两种方法供大家参考学习。二、代码之路首先讲述如何通过鼠标滚轮使view放大缩小。很简单,继承QGraphicsView类,然后重写wheelEvent()事件即可。
QTextEdit信息实时更新显示
void MainWindow::on_Button1_clicked(){ for(int i = 0; i < 10; i++){ //滚动条保持底部 QScrollBar *scrollbar = ui->console->verticalScrollBar(); if(scrollbar){ ...
QWidget体系与QGraphicsWidget体系之间的区别(转)
QWidget体系与QGraphicsWidget体系之间的区别 2010-05-09 01:57 3364人阅读 评论(18) 收藏 举报 http://blog.csdn.net/NRC_DouNingBo/article/details/5571149       在NOKIA reserch center做过的两个Qt项目,每个项目分别都做了三个版本,一个是QWidget体系版本,一
QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式
一个编辑区域,用QGraphi参数View写的,可以放大,鼠标按下后可以拖拽查看,这个时候希望鼠标可以是"小手"抓取的样子.QGraphicsView上有一些个QGraphicsItem,希望鼠标悬停在item上时可以变成四向箭头,然后可以拉伸item. 所以重新了QGraphicsView的 void mousePressEvent(QMouseEvent *event); void mo
QT中QGraphicsView窗口滑动
借用QT中的QGraphicsView类实现窗口滑动
如何只对QWidget的局部区域的显示内容更新
比方说我想在原先有背景图片的widget中更新某个局部区域的图片时采用这种方法 void Widget::paniterEvent(QPainterEvent *) {      QPainter painter(this);      painter.drawPixmap(30,30,100,100,newpicture); } 结果会把整个Widget里的内容擦除,然后在指定区
【Qt】求助:QGraphicsDropShadowEffect和styleSheet无法同时生效。
代码: // 设置border-image this->setStyleSheet("border-image: url(:/icon/camera.jpg)"); // 设置QWidget阴影    // QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(this);    // ...
QT QGraphicsView 透明背景和边框
view->setStyleSheet("padding:0px;border:0px");
基于Qt QGraphicsView的多点触摸绘图
本应用于基于QGraphicsView框架,实现多点触摸. 工程仅仅演示了多点触摸绘图,源自我前段时间一款基于Qt的绘图软件. 工程结构: kmp.h 定义了枚举 slide.h/cpp 定义了派生于QGraphicsScene的slide类,实现绘制的主要功能 widget.h/cpp 定义了派生于QGraphicsView的widget类,多点了多点触摸部分
Qt界面不自动刷新
问题描述 最近在使用Qt Creator进行界面编程的时候发现,在将MainWindow中一个Widget提升为另一个自定义的MyWidget时,发现MainWindow及MyWidget定义的其他控件对鼠标点击不实时刷新,如MainWindow有个check box在鼠标单击后不显示勾选或取消勾选,将MainWindow隐藏后显示或改变大小后,check box的状态才发生变化。解决办法 在进
Qt的Graphics-View框架和OpenGL结合详解
这是一篇纯技术文,介绍了这一个月来我抽时间研究的成果。 Qt中有一个非常炫的例子:Boxes,它展示了Qt能够让其Graphics – View框架和Qt的OpenGL模块结合起来,渲染出非常出色的效果。其实我私自认为凭这个程序,已经有很多游戏开发者关注Qt了,因为游戏开发一个非常常见的模块就是UI,一般情况下游戏引擎提供的UI模块比较弱,基本上都是游戏引擎 + 第三方GUI库进行结合的。但是Qt以其Graphics – View框架能够非常轻松地将UI控件嵌入场景中,而且能够和OpenGL底层共存,更重
QGLWidget的更新机制
Qt的OpenGL接口实际上是实现了glut中与opengl人机交互的功能,很多方法和glut重叠。 glut使用glutMainLoop调用glutDisplayFunc指定的显示函数实现更新 Qt中需要用QTimer类实现更新,具体做法是: 1.写一个类继承QGLWidget,在构造函数中启动QObject::startTimer(int interval)起动计时器 2.重载虚函数v
QGraphicsView 实现动画实验
在做桌面雪花飘落效果的动画时, 想用QGraphicsView来实现动画, 这里做了个实验. 本实验是在scene里添加100个item, 实现简单的斜线运动, 碰到边缘后反弹的效果. 主要是测试其消耗资源情况. 实验结果: 高CPU运行! 下面是代码主要代码: 窗口构造函数, 主要是布局, 创建QGraphicsView和QGraphicsScene对象, 添加100个items
QGraphicsView框架事件处理
QGraphicsView框架事件处理 2016-10-28 16:02:13 标签: QT [+] 一、简介        GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力。图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项。        对于键盘鼠标事件,scen
QGraphicsView的事件传递
问题描述:软件中用到
将Qt、OpenGL、GLSL以及Qt的Graphics-View框架组合
将Qt、OpenGL、GLSL以及Qt的Graphics-View框架结合 将Qt、OpenGL、GLSL以及Qt的Graphics-View框架结合   九月份都快过去了,学生们也都开学了,我想校园也会热闹许多吧,在希赛上也相应地热闹了一些。中秋节也过去了,自己身边还有很多没有吃完的月饼,于是将月饼作为早餐每天早上吃一个,希望这样不会浪费。   这个月的事情比较多,又比
在QGraphicsScene上画矩形
CustomSense继承QGraphicsScene,QGraphicsView,重写了鼠标事件,在CustomSense上添加图片并画矩形标记出特定区域,是专门满足这个需求写的小测试例子,使用Qt5实现。
QT的刷新机制,有时会不刷新的bug解决办法
重写showEvent函数void showEvent(QShowEvent *e) {     this->setAttribute(Qt::WA_Mapped);     QWidget::showEvent(e); } 
QGraphicsView放大和缩小下鼠标位置使用鼠标滚轮
c++ qt qgraphicsview 我有一个在屏幕中间的QGraphicsView窗口的应用程序。我想能够放大和车轮滚动。 目前,我有重新的QGraphicsView和重写的滚动函数,让是doesnt滚动图像(像它在默认情况下)。 void MyQGraphicsView::wheelEvent(QWheelEvent *event) { if(event->delta() > 0)
QT qtableview 不更新数据
用了Qtableview 搭配 从QAbstractTableModel 继承的XxxModel, 但 emit dataChanged( leftTop, rightBottom ); 后,tableview的数据 没有更新,后来发现是多继承了一个QObject class XxxModel:  public QObject, public QAbstractTableModel  
QT中实现当前时间实时更新
如果是通过qt designer弄了个lcdNumber,想通过这个控件显示时间。那么你可以这么做: 在.h文件中: (1)添加头文件: #include  (2)私有成员中定义QTimer对象 private: QTimer * timer 在.cpp文件中: ui->lcdNumber->setNumDigits(8); //显示格式 hh:mm
Kafka权威指南
Kafka
QT小程序:利用QGraphicsScene和QGraphicsView进行显示操作
#include #include #include #include #include #include int main(int argc, char *argv[]) {     QApplication a(argc, argv);     QGraphicsPixmapItem*  myPix = new QGraphicsPixma
QGraphicsView如何添加 和改变图片大小!
1 创建工程 Scale,基类为QWidget ,使用布局器
qt 旋转子窗口 基于QGraphicsView 实现
感谢 Qt 示例里边的 Box 示例~~~~ 上图! 不要被吓哭哦! X轴旋转 XY轴一起旋转 XYZ轴一起旋转 YZ轴一起旋转 Y轴旋转 XZ轴一起旋转 Z轴旋转 GIF的图有点略多 大家谅解谅解~~~ 上代码!!! http:
关于QGraphicsView Chart中的纵坐标轴对齐问题
关于上一篇的文章是几个chart的轴对齐问题,现将解决的方法分享给大家,1.出现这种问题,跟自己纵轴的取值设置有关系,如果每个chart的纵轴设置的数据范围是不一样的,就会导致几个纵轴的数据有的长,有的短,然后坐标系就不会对齐了。2.这是我们可以想到Qt里面关于QValueAxis系列的方法,里面有一个方法叫setLabeLFormat,设置坐标系上的数据的显示方式,这时就可以将nbsp(表示空格...
Qt长时间运行界面停止刷新的解决办法
最近用Qt搞一个项目(Qt版本是4.7.3),如下图所示,其中有一个功能是需要实时地在状态栏中显示当前的系统时间。我的做法是用定时器(使用QTimer)每隔1s,通过QDateTime::currentDateTime()获取当前的系统时间,然后再刷新到界面上。运行时发现刚开始运行的时候没有问题,但是经过大概15分钟后,界面停止刷新了,表现是界面上的时间停止不动,只有当用户点击界面上的按钮时,界面...
Qt学习之路(32): 一个简易画板的实现(Graphics View)
Qt学习之路(32): 一个简易画板的实现(Graphics View) 2009-12-15 23:42:46 标签:C++ 教程 学习 QT教程 Qt 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/244181 这一次将介绍如何使用Gr
QtOpenGL以及Graphics-View框架整合的例子
此程序是演示程序,大家可以免积分下载。 ------------------------------------- 此程序来源于我的一篇博客,欢迎访问。 http://blog.csdn.net/gamesdev/article/details/11994501 ------------------------------------- 欢迎访问我的博客。 http://blog.csdn.net/gamesdev ------------------------------------- Qt的QWidget大家族已经成熟,不会得到太大的发展了,而随着Qt5的发展,新的界面类会崭露头角,比如QWindow、QSurface、QScreen这些类。但现在的状况(Qt5.2即将出了),这些类和模块并不会对现有的GUI模块造成威胁,更不用说取代Qt4的GUI(在Qt5是QtGui和QtWidgets)模块了。自Qt4.4起,Qt拥有了Graphics-View框架,使用这个框架可以更加轻松地在窗口中嵌入任意你想要绘制的元素。但是据我所知,Qt5的那些类无法和Graphics-View框架进行整合,对于想要利用Qt中Graphics-View框架的同行们,只能退回Qt4的类进行开发了,Qt5的这些类对于创建纯OpenGL还是有利的。
QT GUI 使用graphicsview控件显示图像的方法(包括在GUI内调用opencv的办法)
添加按钮控件和graphics控件,实现功能:点击按钮,图像显示在graphics控件上。 在按钮的按键响应函数里添加以下代码即可: QGraphicsScene* originalScene =new QGraphicsScene(this) ui->originalView->setScene(originalScene); QPixmap*...
解决QGraphicsview 背景,地图(摄像头)任意移动的方法
这里解决的问题是:让view的窗口不需要拉动滚动条,而让它发生任何的移动。。。类似的效果可以参考:魂斗罗之类的游戏,当角色走到窗口(view)特定位置时,我们不需要做任何操作,而游戏背景(一张比较宽的图而已)自己发生横向移动。。。当然用下面的方法,不止于只发生横向运动,可以是任意的移动。。。 注意这里指的移动,并不是移动坐标系,而是只移动观察view里item的视角而已,比如把view比作一张巨
Qt下给QGraphicsScene绘制网格背景方法
直接上代码: QPolygonF myPolygon1; myPolygon1 << QPointF(0,10) << QPointF(20,10); QPolygonF myPolygon2; myPolygon2 << QPointF(10,0) << QPointF(10,20); QPixmap pixmap(20, 20); pixmap.
Qt浅谈之十七:飞舞的蝴蝶(GraphicsView框架)
一、简介        简介 二、运行图 (1)如下图1所示。 三、详解 1、开始 (1)开始 四、总结 (1)本博文只发布部分源码,读者可根据思路来进行定制。 (2)在不同的系统下可能还会有乱码出现,可修改程序实现,主要当初没考虑到国际化支持。 (3)源码已经打包上传到csdn上可登录下载(http://download.csdn.net/deta
交互式QGraphicsView(平移/缩放/旋转)
简述 Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。 和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。
QGraphicsView有什么方法可以限制其大小不变
QGraphicsScene *scene = new QGraphicsScene(); scene->setSceneRect(0,0,800,480); this->setScene(scene); this->setFixedSize(800,480); C/C++ code ? 1 scene->setSce
QWidget体系与QGraphicsWidget体系之间的区别
      在NOKIA reserch center做过的两个Qt项目,每个项目分别都做了三个版本,一个是QWidget体系版本,一个是QGraphicsWidget体系版本,一个则是Orbit版本。       首先解释下三者之间的关系:      ①:QWidget体系是我们平时最常用的Qt体系,亦即其中所有使用的窗口类都是QWidget或其派生类!      ②:QGraphi
Qt之模型/视图(实时更新数据)
Qt实现的MVC编程 功能: (1)添加委托(进度条) (2)显示文件名称、大小、进度、速度、剩余时间、状态等。 (3)可进行添加、更新、删除、清空等操作。 (4)实时更新数据
QGraphicsView 框架学习(三),图形对象的剪贴板操作。
图形编辑必备功能,剪贴板。 Qt本身提供 QClipboard 对象,它使用也很方便,有轮子就不用自己造轮子,不说废话,我们需要利用QMimeData对象来存储我们的图形元素,所以我们要声明一个QMimeData的派生类。
QGraphicsView 框架学习(五) 边框与控制点。
选择控制以前已经实现了,为矩形对象默认添加了8个控制点,可以通过鼠标移动控制点,调整图形的大小。多边形,直线,曲线等没有提供这8个控制点,而是直接将每个输入点当做控制点,实际上也应该给它加一个边框。       这两天看了一下著名的inkspace,它提供了一个SelTrans对象来对图元进行缩放,拉伸,旋转,扭曲等操作;还提供了 control_point对象,来控制图元path,改变图元形态
Qt实现自定义QGraphicsItem,实现了一个闪烁的圆,和闪烁的文字
用Qt实现了一个闪烁的圆,这个挺简单的, 下面是具体的代码: mian.cpp: #include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec
QGraphicsView 框架学习(一)、图形元素的编辑
一、给图形对象加控制点,用户通过鼠标来操作控制点来编辑图形,参考MFC drawcli的实现。 很多人通过QGraphicsItem的派生类,然后重载几个函数来处理鼠标消息: void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE; void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE; void
OSGEarth嵌入Qt的QGraphicsView框架(二)
上一篇处理了QGraphicsView的鼠标、按键事件,本篇接着嵌入OSGEarth。 新建一继承自EventAdapter(一)的类GraphicsView,完成OSGEarth的嵌入工作。实现思路是QGraphicsView的Viewport用OpenGL来绘制,这样才可以完全OSG的update。而要完成每帧的更新,则需要一个定时器,每隔10ms更新一次,即每10ms调用一次OSG的f
qt开发(二): graphic view放大导致text失真的完美解决办法
text变形其实本质是painter被加上scale之后,text也随之改变,解决办法是把这个scale找出来,让他只作用于坐标而不作用于text本身。 void Line::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){ pai
[Qt]QTableWidget编辑cell更新界面,总跳转到第一页的问题
如题, 在编辑完某个cell之后,更新界面,总默认跳转到界面最顶端,这个很烦人,有时候你加了很多行东西,每次跳转都顶端,还得拉下来,在进行下一次编辑。 跟了一下代码,发现是因为,我更新界面的时候,使用了clear()这个函数, m_pTableWidget->clear(); //清除表中内容,包括标题头 我是每次更新,先clear(),然后又根据数据重刷的界面,而clear()会触发Qt
QGraphicsScene 绘制刻度图
Qt5.6+MSVC,QGraphicsScene QGraphicsView 绘制刻度图
QTableView实时更新数据
需要在模型的setData函数中添加两个函数: bool QTabveiwModel::setData(const QModelIndex &index, const QVariant &value, int role) { beginResetModel();//在开始添加此函数 if (role == Qt::UserRole) { MODEL_DATA * employee =
QT界面开发——图像的优化实时显示
本望断秋高描述QT界面开发——图像的优化实时显示;主要在于图像显示的QLabel类,并使用paintEvent(QPaintEvent *event)优化刷新界面,此类可提供主窗口调用创建,设置图像显示位置,以及界面刷新频率。 图像显示的QLabel类:ShowPicWidget.h #ifndef SHOWPICWIDGET_H #define SHOWPICWIDGET_H #incl...
OSGEarth嵌入Qt的QGraphicsView框架(一)
近期在学习OSGEarth,看example,自己结合Qt写了一些小例子,特此记录一下。 首先,考虑到OE(OSGEarth)嵌入到QGraphicsView中,首先收到按键、鼠标事件的就是QGraphicsView,因此,我们需要先把这一庞大的事件进行处理。 代码如下:.hclass EventAdapter : public QGraphicsView { public: Even
Qt Graphics入门小例以及实现场景中相关项拖拽功能总结.
源码之前了无秘密: 相关开发中碰到问题代码中已有向导性开发解说,太深入的过程暂时没有时间研究,见谅,仅当入门小例. MyWidget.h文件 #ifndef MYWIDGET_H#define MYWIDGET_H#include #include #include #include #include #include #include #include #include // pr
Qt QRegion裁剪区域实现部分区域刷新 避免闪烁区域太大
QRegion为painter指定一个裁剪区域。  QRegion 是使用 QPainter:setClipRegion ()来限制画图区域。 还有一个 QWidget:repaint()函数,它接受一个 QRegion 参数。QRegion 是最大化降低屏幕区域被repaint更新的最好工具。 我遇到的问题 :我想鼠标左键点击选取下图某个监控视频时,能够加上黄色的边框,这个时候我刷新一整块方
Qt如何显示一个动态的变量或者说定时刷新界面
1.先说明下,题目有两个关键词,因为我之前搜 的就是展示一个动态的变量,搜了半天,基本上没啥有用的.后面的关键词是 再搜前面的关键词的时候 找到的似乎类似的 方面.恩,后面关键词 是可以解决前面的问题. 希望搜前面的关键词的童鞋 可以关联到我这篇博客. 2.我要做的是,让一个一直物体动起来,展示在界面上.因为是Ubuntu,基本上用Qt做页面,不得已才学这新的语音(不过看到VS2017可
QT的Graphics View框架与坐标系
原文链接   http://dxwang.blog.51cto.com/384651/215340 Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。 Items能
透明按钮背景不刷新【不使用父窗口背景刷新
随笔- 10  文章- 0  评论- 37  用C++实现半透明按钮控件(PNG,GDI+) 使用MFC实现上面的按钮半透明效果能看到父窗口中的内容,上面是效果图(一个是带背景图片的、另一个是不带的)。 控件继承自CWnd类(彩色的部分是窗口的背景图片、按钮是PNG图片,第二个图标是鼠标指向时的效果)。 图标的绘制使用GDI+绘制
QT中OPENGL的实时绘制
原文http://www.cnblogs.com/dabaopku/archive/2012/02/09/2343979.html 问题 即便不使用 QGLWidget 而是使用 glut 系列,使用opengl进行渲染总是要面临这样的问题,什么时候需要重绘?最佳的用户体验自然是每次渲染结束后立即重绘。还在使用glut的时候,glutMainLoop就是这么搞得,以致随便跑个纹
Qt工作笔记-QGraphics框架场景中图元的移除与析构
1.场景里面使用removeItem函数,这个函数官方给出如下解释 注意这个词remove只是移除,并不是delete掉,所以只是场景中(显示出来的图元)没有了,空间还是存在。   举个代码例子: void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event) { setCursor(Qt::ArrowCursor); ...
QGraphicsScene保存为图片
QImage image(mysize,QImage::Format_RGB32);          QPainter painter(&image);          myscene->render(&painter);   //关键函数          image.save(mypath/myimagefile.png);
QtextBrowser打印数据不能实时显示的问题
       在编写程序的时候需要从外部读取txt文件的数据打印到QtextBrowser文本框中,但是发现数据是卡一下然后一起出来,而不是一行一行地实时显示。编程环境是vs2017编译器下的集合qt插件的C++界面编程。原来的程序段如下:ui.dataout-&gt;clear(); ifstream infile; infile.open("data.txt"); //将文件流对象与文件连...
使用QTGraphics View 框架实现地图浏览
该程序基本功能:地图的浏览、放大、缩小以及显示各点的坐标 1、头文件 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent =
Qt重绘之update,repaint详解(转)
  Qt里面的重绘和Windows编程里面的重绘差不多。但是Qt的重绘更有特色,更加智能。 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的paintEvent进行重写。当调用 update(),repaint()的时候,paintEvent()会被调用,另外,当界面有任何改变的时候,paintEvent
QTableView 刷新相关
1 QTableView如何清空数据保留表头?tableview-&gt;clear(); //连表头也会被删除tableview-&gt;removeRow(); //就必须知道表中有多少行数据  如何获取表中数据行数?    2 使用QStandardItemModel的QTableView,添加大量数据解决刷新卡顿问题添加数据前:TableView-&gt;setUpdatesEnabled...
QGraphicsView 框架学习(二),组合与撤销组合
QGraphicsItemGroup 是Qt二维图形框架提供的对图元进行组合操作的类。它提供了了void addToGroup(QGraphicsItem * item) 和 void removeFromGroup(QGraphicsItem *);两个方法。实际使用中可以通过 scene的createItemGroup()方法来创建组合对象,通过destroyItemGroup方法撤销组合。看
实现qt QGraphicsView放大缩小功能的类
实现qt QGraphicsView放大缩小功能的类,不用继承QGraphicsView,只需要在该类中设置要实现放大缩小的QGraphicsView对象即可。
QT提升控件示例
QT提升QGraphicsView控件类简单示例,提升后控件动态显示时钟,效果如上图。 提升类cpp代码实现如下: 注意注意:QPainter mypainter(this->viewport()); this->viewport()->update();!!! #include "QMyGraphicsView.h" #include #include QMyGr
Qt界面刷新大量数据时,界面卡死的解决方法以及QTableWidget和QTableView加载速度的比较
最近用Qt搞一个项目,里面有个功能是要加载XML日志文件的内容(大概1万行左右)然后在界面QTableWidget类型的表格里面显示由于日志文件的行数比较多,所以刷新到界面上时导致了界面卡死,刷新期间界面无法响应用户操作。而领导给我的要求是:第一:加载的时候界面不能卡死,界面要能够响应用户的操作。第二,在保证第一条的情况下,要尽可能快地加载并显示完日志的内容。第三,由于该项目是客户端,所以加载和显...
QGraphicsItem 如何导出为png或者svg图
两种方式 假设有 QGraphicsItem item;方式一  QPixmap pix(item-&gt;boundingRect().width(),item-&gt;boundingRect().height());        QPainter painter;         pix.fill(Qt::transparent);//用透明色填充        painter.begin...
【Qt】使用QCamera获取摄像头,并使用图像视图框架QGraphics*来显示
使用QCamera获取摄像头,并使用图像视图框架来显示 QGraphicsVideoItem QGraphicsScene QGraphicsView
我们是很有底线的