2 aiyaqin aiyaqin 于 2016.09.21 11:00 提问

Qt的update不进入paintevent更新不了

#include"A.cpp"
#include"B.cpp"
mian::Qwidget
{……}

A.cpp中
{……
B.setvalue(para);
……}

B.cpp中

B::B(QWidget *parent) :
QWidget(parent)
{
m_startAngle=0;
// m_currentvalue=0;
UpdateTime=new QTimer(this);
UpdateTime->setInterval(10);
connect(UpdateTime,SIGNAL(timeout()),this,SLOT(UpdateGraph()));
//UpdateTime->start();
}
void PShowDisplay::paintEvent(QPaintEvent *)
{…
PARA//包含这个一直变化的参数希望通过update来更新…}
……
setvalue(para)
{
PARA=para;//参数一直变化
UpdateTime->start();
}

void PShowDisplay::UpdateGraph()
{

this->update();//没有进入paintevent中

}

请问为什么没有更新??有一个例子和我的代码一样, 为啥他额能够更新,我的不能呢??

2个回答

bloodred0000
bloodred0000   2016.09.22 11:26

repaint()呢?

aiyaqin
aiyaqin   2016.09.22 15:18

试过了,不行图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
QWidget中update不执行paintEvent解决方案
在QWidget中,如果遇到调用它的update时,不执行paintEvent情况。 多半是两种情况, 1、update是disabled 2、此widget是hide的 3、设置了QWidget的setAttribute(Qt::WA_TranslucentBackground,true);属性会引起很多刷新问题 解决方案: 如果你没有禁用update,那么就是没有show出
QT paintevent 事件, update()槽函数
一界面重载函数 使用方法: 1在头文件里定义函数 protected: void paintEvent(QPaintEvent *event); 2 在CPP内直接重载 void ----------::paintEvent(QPaintEvent *) { //重载函数体 }  执行条件:界面有任何变动都会执行 特别:有时候会积累变化,既界面发生变化时不
Qt paintEvent中调用upDate
在paintEvent中调用upDate之后,会存在大量的内存泄漏。Qt文档中特别强调,在paintEvent中要避免使用upDate和rePaint,否则会出现不可预知的问题
Qt中继承控件重写paintEvent函数后没有显示的问题解决
今天一个同学遇到了一个问题,是这样的:她写了一个继承QLabel的派生类,重写了里面的paintEvent函数,创建对象并set了图片进去,编译没错,正常运行,结果就是那个label什么都没有显示出来.
使用PaintEvent之后setStyleSheet不生效的解决办法
发现 继承自QWidget的自定义类 ,使用setStyleSheet无效, 如果删除头文件中的 Q_OBJECT,setStyleSheet生效, 但不用OBJECT 就无法所使用signal and slot, 最后找到解决办法,继承自QWidget的自定义类中,重载 paintEvent方法, 并加入如下代码: QStyleOption opt; opt.init(
Qt重绘之update,repaint详解(转)
  Qt里面的重绘和Windows编程里面的重绘差不多。但是Qt的重绘更有特色,更加智能。 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的paintEvent进行重写。当调用 update(),repaint()的时候,paintEvent()会被调用,另外,当界面有任何改变的时候,paintEvent
QT paintEvent调用时间
当发生一下情况时会产生绘制事件并调用paintEvent()函数: 1.在窗口部件第一次显示时,系统会自动产生一个绘图事件,从而强制绘制这个窗口部件。 2.当重新调整窗口部件的大小时,系统也会产生一个绘制事件。 3.当窗口部件被其他窗口部件遮挡,然后又再次显示出来的时候,就会对那些隐藏的区域产生一个绘制事件。 同时可以调用QWidget::update()或者QWidget
QT QPaintEvent update repaint 高帧率画图
Qt paintevent事件 一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEvent ( QPaintEvent * ) [虚 保护] 3.void QWidget::repaint ( int x, int y, int w, int h, bool e
QT关键问题解决之paintevent理解
基础概念: paintEvent(QPaintEvent*)函数是QWidget类中的虚函数,用于ui的绘制,会在多种情况下被其他函数自动调用,比如update()时。 运行时机: 一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因的任意一个都会发生重绘事件: (1)repaint()函数或者update()函数被调用; (2)被隐藏的部件现在被重新显示; (
paintEvent()的使用和触发
void ImgLabel::paintEvent ( QPaintEvent *e ) { QPainter painter(this); painter.save(); QRect rect = this->geometry(); painter.fillRect(QRect(QPoint(0,0),QSize(rect.width(),rect.height())),QBr