我是Qt初学者。
所以我的MainWindow有一个QSlider
和一个QPixmap
。我重新定义了paintEvent( QPaintEvent* event )
和
connect( slider, SIGNAL(valueChanged(int)), this, SLOT(centerChange(int)) );
带插槽:
void MainWindow::centerChange(int value)
{
center = value;
update();
}
所以我只想在滑块的值改变时重新绘制Pixmap。但是我注意到,每当我对滑块进行鼠标输入或鼠标移出时,都会触发重绘。为什么会这样?
感谢。
答案 0 :(得分:2)
可以由底层Qt绘图系统随时触发绘制事件。您不应该假设只有您才能触发绘制事件。您需要更改应用中的逻辑。
答案 1 :(得分:1)
文档says:
绘制事件是重新绘制全部或部分窗口小部件的请求。它可能由于以下原因之一而发生:
- 调用了repaint()或update(),
- 小部件被遮挡,现在已被发现,或
- 许多其他原因。
(强调我的)。具体来说,底层操作系统可以在任何时候触发重绘事件。
答案 2 :(得分:0)
根据您的要求,请勿重新实施paintEvent
。只需在滑块值更改时进行QPixmap
更新。