首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt paintEvent()异常触发

Qt paintEvent()异常触发
EN

Stack Overflow用户
提问于 2014-03-06 10:34:09
回答 3查看 518关注 0票数 0

我是Qt初学者。

所以我的MainWindow有一个QSlider和一个QPixmap。我重新定义了paintEvent( QPaintEvent* event )

代码语言:javascript
复制
connect( slider, SIGNAL(valueChanged(int)), this, SLOT(centerChange(int)) );

有一个插槽:

代码语言:javascript
复制
void MainWindow::centerChange(int value)
{
    center = value;
    update();
}

因此,我想要重新绘制的Pixmap,只有当滑块的价值被改变。但是我注意到,每次我在滑块上做鼠标输入或鼠标输出时,都会触发重绘。为什么会发生这种事?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-06 10:39:42

油漆事件可能在任何时候由基础Qt绘图系统触发。您不应假设只有您才能触发画图事件。您需要更改应用程序中的逻辑。

票数 2
EN

Stack Overflow用户

发布于 2014-03-06 10:39:31

文档他说

画图事件是重新绘制小部件的全部或部分的请求。发生这种情况可能有以下原因之一:

  • 调用了repaint()或update(),
  • 这个小部件被遮住了,现在已经被发现,或者
  • 还有许多其他原因.

(强调我的)。具体来说,底层操作系统可以在任何时候触发重绘事件。

票数 1
EN

Stack Overflow用户

发布于 2014-03-06 10:59:24

根据您的需求,不要重新实现paintEvent。当滑块值改变时,只需进行QPixmap更新即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22221824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档