我已經在自定義小部件中覆蓋了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