我需要在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
更合适。