我在自定义小部件中覆盖resizeEvent(QResizeEvent * / * SizeEvent * /),我想知道是否应该在事件上调用SizeEvent-> accept()或者让它传递。
由于我从父窗口小部件中获取它,我假设我可以安全地接受它,但我无法找到确定的答案。
谢谢,
答案 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