我需要在QMainWindow
初始化和渲染所有小部件时开始工作。
我怎样才能捕捉到这样的事件?
我看到了两种方法。
复杂的:
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
。