QT LCD Number 위젯 관련하여 질문입니다.
글쓴이: ieken93 / 작성시간: 금, 2016/10/21 - 5:32오후
안녕하세요. 간단한 것 같은데 헤메다가 이렇게 질문 남겨 봅니다.
간단히 LCD Number 위젯과 Start Button을 만들었습니다.
Start Button을 누르면 1 ~ 10까지 증가하면서 LCD Number에 출력해 주면 되는데 마지막 숫자만 출력되네요. 숫자 증가 확인을 위해 Sleep을 1초씩 주었습니다.
그냥 Button 없이 Timer로 증가하는 것은 확인했습니다. Timer로 확인 할 때는 별도로 Signal/Slot을 만들었습니다. 무엇을 잘 못 생각하고 있는 것일까요?
소스는 아래와 같습니다.
void MainWindow::on_pushButton_clicked() { for(int nloop = 0; nloop < 5; nloop++) { ui->lcdNumber->display(nloop+1); sleep(1); } }
Forums:
GUI 코드에서 sleep()을 사용하면 GUI
GUI 코드에서 sleep()을 사용하면 GUI 전체를 얼려 버립니다. 차라리 버튼을 눌렀을 때 타이머를 활성화하는 방식을 쓰시는 건 어떨까요?
답글 감사합니다.
답글 감사합니다.
실제 코드에서는 sleep을 사용한 건 아니구요. 위의 코드에서 sleep이 있는 부분에 다른 코드가 들어가 있습니다. 실제 뭔가를 수행하는 코드요. 그 코드가 끝나면 한 번 수행 한 것으로 간주하고 Display에 수행 횟수를 표시해 주고 싶은 것이었습니다. mfc에서는 쉽게 구현되었는데 qt에서는 좀 다른 듯 해서요.
QApplication instance 객체의 processEvents() 함수를 호출해 주세요.
for(int nloop = 0; nloop < 5; nloop++)
{
ui->lcdNumber->display(nloop+1);
QApplication::instance()->processEvents();
QThread::sleep(1);
}
www.gilgil.net
댓글 달기