-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtime.cpp
140 lines (113 loc) · 4.61 KB
/
time.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include "mainwindow.h"
#include "ui_mainwindow.h"
void MainWindow::Start_Slot()
{
if(ui->StartButton->text()=="准备!")
{
if(ui->ChuanKouButton->text()=="打开串口")
{
if(QMessageBox::No==QMessageBox::question(this,"串口可能未打开","串口未打开,您确定不需要打开吗",QMessageBox::Yes,QMessageBox::No))
return;
}
this->ReNew->start(10);//1000毫秒刷新一次界面
QObject::disconnect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));//先断开连接防止错误
QObject::connect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));
this->Time.setHMS(0,1,0,0);
ui->TimeLine->setText("00:01:00");//先刷一次图
this->ReadyToReady();//准备时间
ui->AddButton->setEnabled(false);
ui->NextTeamButton->setEnabled(false);
ui->LastTeamButton->setEnabled(false);
ui->StartButton->setText(tr("就绪!"));
}
else if(ui->StartButton->text()=="就绪!"||ui->StartButton->text()=="重跑!")
{
this->ReNew->start(10);//10毫秒刷新一次界面
QObject::disconnect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));//connect前先断开连接,防止错误
QObject::connect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));
this->Time.setHMS(0,0,30,0);
ui->TimeLine->setText("00:00:30");//先刷一次图
this->ReadyToReady();//准备时间
ui->StartButton->setText(tr("发车!"));
}
else if(ui->StartButton->text()=="发车!")
{
this->ReNew->start(10);//10ms刷新界面
QObject::disconnect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));//connect前先断开连接,防止错误
QObject::connect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));
this->Time.setHMS(0,0,0,0);
ui->TimeLine->setText(this->Time.toString("mm:ss:zz"));
this->ReadyToRun();//初始化各连接,准备比赛
ui->StartButton->setText(tr("完成!"));
}
else if(ui->StartButton->text()=="完成!")
{
this->ReNew->stop();
QObject::disconnect(this->ReNew,SIGNAL(timeout()),this,SLOT(Time_Out()));
ui->TimeLine->setText(this->Time.toString("mm:ss:"));//再刷一次图
ui->TimeLine_MS->setText(this->Time.toString("zzz"));//再刷一次图
ui->StartButton->setText("重跑!");
ui->StartButton->setEnabled(false);//放误触发
ui->ConfirmButton->setEnabled(true);
ui->AddButton->setEnabled(true);
this->ReNew->start(2000);
QObject::connect(this->ReNew,SIGNAL(timeout()),this,SLOT(AntiTouch_Slot()));
}
}
void MainWindow::Time_Out()
{
if(ui->StartButton->text()=="就绪!")
{
if(ui->PauseButton->text()=="继续")
return;//暂停功能
this->Time=this->Time.addMSecs(-10);
if(this->Time<=QTime(0,0,0,0))
{
Start_Slot();
return;
}
ui->TimeLine->setText(this->Time.toString("mm:ss:"));
ui->TimeLine_MS->setText(this->Time.toString("zzz"));
if(this->Time>QTime(0,0,58,0))
ui->StartButton->setEnabled(false);//防止误触发
else
ui->StartButton->setEnabled(true);
}
else if(ui->StartButton->text()=="发车!")
{
if(ui->PauseButton->text()=="继续")
return;//暂停功能
this->Time=this->Time.addMSecs(-10);
if(this->Time<=QTime(0,0,0,0))
{
Start_Slot();
PunishTimes++;//超时不发车自动发车,并罚时
ui->ChujieLine->setText(QString::number(this->PunishTimes));//刷新显示
return;
}
ui->TimeLine->setText(this->Time.toString("mm:ss:"));
ui->TimeLine_MS->setText(this->Time.toString("zzz"));
if(this->Time>QTime(0,0,28,0))
ui->StartButton->setEnabled(false);//防止误触发
else
ui->StartButton->setEnabled(true);
}
else if(ui->StartButton->text()=="完成!")
{
if(ui->PauseButton->text()=="继续")
return;//暂停功能
this->Time=this->Time.addMSecs(10);
ui->TimeLine->setText(this->Time.toString("mm:ss:"));
ui->TimeLine_MS->setText(this->Time.toString("zzz"));
if(this->Time<=QTime(0,0,2,0))
ui->StartButton->setEnabled(false);//防止误触发
else
ui->StartButton->setEnabled(true);
}
}
void MainWindow::AntiTouch_Slot()
{
ui->StartButton->setEnabled(true);
this->ReNew->stop();
QObject::disconnect(this->ReNew,SIGNAL(timeout()),this,SLOT(AntiTouch_Slot()));
}