我应该在Qt4中的resizeEvent()上调用event-> accept()吗?

时间:2010-08-08 23:32:23

标签: qt widget

我在自定义小部件中覆盖resizeEvent(QResizeEvent * / * SizeEvent * /),我想知道是否应该在事件上调用SizeEvent-> accept()或者让它传递。

由于我从父窗口小部件中获取它,我假设我可以安全地接受它,但我无法找到确定的答案。

谢谢,

2 个答案:

答案 0 :(得分:1)

你不必。如果你这样做,一切都不会发生。 (除非您的团队认为他们必须接受调整大小事件。)在Qt中查看resizeEvent()的一些实现:

void QWidget::resizeEvent(QResizeEvent * /* event */)
{
}

void QMenuBar::resizeEvent(QResizeEvent *)
{
    Q_D(QMenuBar);
    d->itemsDirty = true;
    d->updateGeometries();
}

void QComboBox::resizeEvent(QResizeEvent *)
{
    Q_D(QComboBox);
    d->updateLineEditGeometry();
}
在Qt中没有以有意义的方式使用

QResizeEvent::isAccepted(从4.6.3开始)。通常,当accept()ignore()具有特殊含义时,事件类的文档将是明确的。通常情况是输入事件(鼠标,键,平板电脑,触摸),应该显示某些内容的通知(上下文菜单,帮助,这是什么,工具提示)或者某些东西会产生影响,但是你可以避免它(关闭一个窗口)。

答案 1 :(得分:0)

如果你希望事件自己结束然后调用accept(),或者如果你想让事件移动到基​​类以便其他人可以使用它,那么调用ignore

仅供参考...... http://doc.qt.nokia.com/qq/qq11-events.html