2013-05-21 2 views

답변

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.

+0

죄송합니다. 시정 해줘서 고마워. 사실 세련된^_^그래서 나는 단순한 솔루션을 선호합니다. – Amartel

+0

쉽게 성공할 수 있다고 보장 할 수는 없으며 단순히 'MainWindow'를 만들고 그것을 표시하지 않으면 초기 페인트가 발생하면서'job()'이 실행됩니다. – cmannett85

+1

paintEvent() 대신 showEvent()를 사용하는 것이 더 적절할 것입니다. – Chris

관련 문제