Инициализированное событие QtMainWindow

Мне нужно начать работу, когда QMainWindow и все его виджеты инициализируются и отображаются.

Как я могу поймать такое событие?

1

Решение

Я вижу два способа сделать это.

Сложное:

void MainWindow::showEvent(QShowEvent *e)
{
QMainWindow::showEvent(e);
static bool firstStart = true;
if (firstStart)
{
emit startJob();
firstStart = false;
}
}

И простой (подходит только, если вы показываете главное окно сразу после создания):

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
...
QTimer::singleShot(500, this, SLOT(job()));
}

Обновить:

подобно Chris сказал, showEvent гораздо более уместно здесь, чем paintEvent,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]