我已经在自定义小部件中覆盖了resizeEvent(QResizeEvent */* SizeEvent * /),我想知道是否应该在事件上调用SizeEvent-> accept()或者让它传递。我应该在Qt4中的resizeEvent()上调用event-> accept()吗?
由于我从父窗口部件获取它,我假设我可以安全地接受它,但我一直无法找到明确的答案。
谢谢,
我已经在自定义小部件中覆盖了resizeEvent(QResizeEvent */* SizeEvent * /),我想知道是否应该在事件上调用SizeEvent-> accept()或者让它传递。我应该在Qt4中的resizeEvent()上调用event-> accept()吗?
由于我从父窗口部件获取它,我假设我可以安全地接受它,但我一直无法找到明确的答案。
谢谢,
你不需要。如果你这样做,没有坏事会发生。 (除非你的团队相信他们不得不接受调整的事件。)见的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();
}
QResizeEvent::isAccepted
不以有意义的方式使用Qt中(如4.6.3)。通常,当accept()
和ignore()
具有特殊含义时,事件类别的文档将是明确的。输入事件(鼠标,键,平板电脑,触摸)通常就是这种情况,应该显示某些内容的通知(上下文菜单,帮助,这是什么,工具提示)或某些事情会发生,但您可以避免它(关闭窗口)。
,如果你希望事件结束还有本身然后调用accept()
否则,如果你希望事件移到基类,以便让其他可以使用它,然后调用ignore
事件不能传播到基类(除非在重新实现中显式调用)。它们传播到父窗口小部件(这完全不同) – galinette 2013-09-12 10:54:17