2011-10-28 2 views
0

일부 체크 아웃 작업을 수행하기 위해 qt GUI를 만들었으며 결과를 레이블로 표시했습니다. 나는 QT 창조자를 사용하고 이것은 우두머리와 mainwindow.cpp 프로그램을 창조한다. 그래서 내 문제는 몇 가지 작업을 수행하기 위해 헤더에 더 많은 메소드를 선언했으며 결과로 레이블을 업데이트하지만 loop 및 GUI가 시작되지 않는 동안 사용하는 문제점이 있다는 것입니다. 순차적 인 방식으로 (루프없이) 실행하려고 시도하고이 작동하지만 las 함수를 호출하고 프로그램이 시퀀스를 따르지 않습니다 (예를 들어 서버에 ping을 수행하려는 경우).qt 응용 프로그램을 만들 때 ui 클래스를 사용하는 방법

다음은

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

MainWindow::MainWindow(QWidget *parent) : 
QMainWindow(parent), 
ui(new Ui::MainWindow) 
{ 
ui->setupUi(this); 
while(1) 
{ 
    ping2server() 
    if(ping2server>0) 
      ui->label->setText("The server is alive"); 
    else 
      break; 

} 
/*the server is dead connecting to other one*/ 
. 
. 
//and so on 

} 

MainWindow::~MainWindow() 
{ 
delete ui; 
} 

int MainWindow::png2server() 
{ 

} 
int MainWindow::conn2server() 
{ 
} 

어떤 아이디어를 알려 주시기 바랍니다, 내가 가진 그 비슷한 mianwindow.cpp 프로그램입니다. 나는 이것에서 정말로 새롭다.

당신이 그런 루프를 수행 할 때 당신은 전체 응용 프로그램을 동결하는 당신에게

답변

1

감사드립니다. 대신 QTimer을 사용하고 timeout() 신호를 사용하여 라벨을 업데이트해야합니다.

+0

나는 괜찮 았지만 문제는 내가 2 타이머를 사용하고 있는데, 그 중 하나만 사용하면 그 중 하나만 업데이트되고 마지막 타이머가됩니다. GUI는 첫 번째 타이머의 상태를 표시하지 않습니다. 왜?? – user1013213

+0

코드를 게시 할 수 있습니까? –

관련 문제