首页| 论坛| 消息

标题:为什么Update不能调用paintEvent
作者:tttomato
日期:2021-09-26 16:52
内容:

写了一个程序用来实现一个温度计的自定义控件。功能就是在窗口的输入栏输入一个温度的值,点一下按键,那个温度计就会显示输入的温度。
我用的是提升的方法来画温度计,自建了一个DrawTemp的类,在里面画好了温度计,包括一些参数也在类里。在主窗口拖一个 widget 提升完之后可以正常显示。
在实现改变温度功能的时候发现我输入数字按下按钮,温度没有变化。后来在各个函数里加了qdebug测试后发现update函数并没有调用到paintEvent。不知道是为什么。

代码大概如下:

1.DrawTemp.cpp里的函数

DrawTemp::DrawTemp(QWidget *parent):Qwidget(parent)
{
t_Value = 0;设置温度初始值,在DrawTemp.h文件中已定义
/************其它全是控件的初始值设置,不打出来了**********/
}


void DrawTemp::paintEvent(QPaintEvent *)
{
QPaint painter(this);
drawFuc_01(&painter);//调用自己写的画图函数。
drawFuc_02(&painter); //调用自己写的画图函数。
qDebug()


#1 [luansxx 09-26 17:13]
update 之后,paintEvent 会在下一个消息循环中被调用。可以认为是一种 post 执行。

回复 发表
主题 版块