그 외 공부

[SW기초실습1] #Mission 3, Qt를 이용한 stop watch

ssangeun 2015. 8. 4. 17:33

*stop watch전체 설명


 START버튼을 누르면 flag=1이고, 10msec마다 시간이 증가되는 함수를 부르는데 그 때마다 ms++가 되고 그렇게 ms100이 되면 1초가 증가한다. [10msec*100=1000(1)]

 STOP버튼을 누르면 변수 flag0이 되는데 flag0이 되면 시간이 가는 함수가 return 0을 하면서 시간이 정지된다. 시간이 정지되면서 변수 remainingSecTime0으로 초기화 되는데 remainingSecTimems=100이되면 증가하는 인데 초기화는 다시 START버튼을 누르면 정지 되었던 시간부터 증가하기 위한 이유이다. RESET버튼을 누르면 변수 flagms, (min), (hour) 0으로 모두 초기화 되고 시간이 처음과 같이 00:00:00.00으로 출력 되어진다.


-code

 code

설명 

 

 변수를 선언, stopSTOP버튼을 눌렀을 때 시간을 멈추기 위한 변수이고, flag는 시간이 가는timer_handler함수를 제어 하기 위해 사용한 변수이다

 

 시작부분에 시간을 나타내기 위한 함수이다.

 

 flag1일때만 시간이 증가가 된다. 이 함수는 10msec마다 불러오는데 그럴때마다 ms++이 되고 이렇게 ms100정도 되면(10*100=1000msec) 1초가 증가된다remainingTime>0일때는 1을 반환하고 STOP버튼을 누르면 stop1이 되는데 그러면 timer_handler함수는 return 0으로 종료하고 시간이 더 이상 가지 않는다.

 

 START버튼을 누르면 flag1이 되고 10msec마다 timer_handler함수를 불러온다.

이때 flag1이므로 불러온 함수에서 시간이 증가 된다.

STOP버튼을 누르면 flag0이 되고 함수를 종료하는 변수 stop1이 되면서 시간이 정지 된다.

remainingSecTime=0을 하는 이유는 정지를 하고 다시 시작을 누르면 정지된 시간부터 증가가 되어야 하므로 사용한다. RESET버튼을 누르면 모든 변수가 초기화가 된다.

 

 시간을 보여주는 label1vbox에 먼저 올려놓고 그다음 START버튼, STOP버튼, RESET버튼을 차례대로 vbox에 올려준다.

 

 START,STOP,RESET버튼을 누르면 buttonClicked함수를 부른다.시간 label과 버튼들을 가지고 있는 vboxwindow에 올려준다.



-결과

 

 

 

시작

 START를 누르면 시간이 간다.

 STOP을 누르면 시간이 멈춘다.

 

 

 STOP후에 다시 START를 누르면 정지되었던 시간부터 다시 시간이 간다.

 STOP을 누른 후에 RESET을 누르면 모두 초기화 되고 시작부분으로 돌아가게 된다.