я должен вызвать event-> accept () для resizeEvent () в Qt4? - PullRequest
2 голосов
/ 09 августа 2010

Я переопределил resizeEvent (QResizeEvent * / * SizeEvent * /) в пользовательском виджете, и мне интересно, должен ли я вызывать SizeEvent-> accept () для события или просто позволить ему пройти.

Поскольку я получаю его из родительского виджета, я предполагаю, что могу смело принять его, но я не смог найти окончательный ответ.

Спасибо

Ответы [ 2 ]

1 голос
/ 09 августа 2010

Вам не нужно.Если вы это сделаете, ничего плохого не произойдет.(За исключением, возможно, вашей команды, считающей, что они должны принимать события изменения размера.) Смотрите несколько реализаций resizeEvent() в Qt:

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.60,3).Как правило, документация класса событий будет явной, когда accept() и ignore() имеют особое значение.Обычно это происходит с событиями ввода (мышь, клавиша, планшет, касание), уведомлениями о том, что что-то должно отображаться (контекстное меню, справка, что это, всплывающая подсказка) или что что-то произойдет, но вы можете избежать этого (закрытьокно).

0 голосов
/ 09 августа 2010

если вы хотите, чтобы событие там заканчивалось само, тогда вызовите accept() или, если вы хотите, чтобы событие перешло в базовый класс, чтобы другие могли его использовать, затем вызовите ignore

К вашему сведению ... http://doc.qt.nokia.com/qq/qq11-events.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...