1

我需要在QMainWindow初始化和渲染所有小部件时开始工作。

我怎样才能捕捉到这样的事件?

4

1 回答 1

2

我看到了两种方法。

复杂的:

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

于 2013-05-21T17:22:22.887 回答