У меня есть горизонтальная область прокрутки и динамически добавленные виджеты внутри нее.Qt: выполнение действия (прокрутка) после добавления виджета
Я хочу, чтобы прокрутить до самого конца, когда добавляется новый виджет, так что пользователь видит последний виджет с помощью этого метода:
void scrollToEnd()
{
scroll->horizontalScrollBar()->setValue(100000);
}
...
layout->addWidget(widget);
scrollToEnd();
Однако, есть задержка между вызовом layout->addWidget()
и фактическим виджетом появляться. Поэтому вызов scrollToEnd()
ничего не делает.
Если я делаю apause, например, показывая MessageBox, все работает нормально.
Есть ли способ подождать, пока виджет будет отображаться, а затем прокрутите область прокрутки?
там это событие showEvent (QShowEvent *) в QWidget, это может помочь вам – Kunal
Спасибо за отзыв. Но странно, что все еще есть задержка ... – Alex
Вы говорите, что используете горизонтальную область прокрутки. Это QScrollArea? –