최원영

CalligraphyAssistProgram submit

Showing 287 changed files with 10503 additions and 0 deletions
No preview for this file type
No preview for this file type
No preview for this file type
1 +# 드론어시스트 프로그램(callyassist program)
2 +
3 +## 요약
4 +
5 +드론을 물리적인 힘을 제공해주는 햅틱 피드백 인터페이스로 이용하여
6 +
7 +한글 궁서체 서예를 학습하는데 도움을 주는 프로그램
8 +
9 +
10 +## 개발 환경
11 +
12 +- Python
13 + * ver : 3.8.2
14 +
15 +- PyQt5
16 + * ver : 5.15.2
17 +
18 +- Qt Designer
19 +
20 +
21 +## 타겟 기기
22 +
23 +드론 : CoDrone Pro 모델
24 +
25 +통신 보드 : Ble Board & CP 210 다운로드 칩
26 +
27 +
28 +### 드론 통신 환경 설정
29 +
30 +1. 다음 url에서 최신 버전의 USB helper 설치
31 +
32 + http://robolink.co.kr/download.html
33 +
34 +2. 드론 업데이트
35 +
36 + playstore 및 appstore에 존재하는 petrone app 설치
37 +
38 + 앱에서 제공하는 드론 업데이트 실행
39 +
40 +
41 +## Install
42 +
43 +#### 1. GUI 적용을 위한 모듈 설치
44 +
45 + pip install pyqt5
46 +
47 +
48 +#### 2. 코드론 구동을 위한 모듈 설치
49 +
50 + pip install codrone
51 +
52 +
53 +
54 +#### 3. calliAssist 폴더에서 실행
55 +
56 + python mainWindow.py
57 +
58 +
59 +
60 +
61 +
62 +## 추가 첨부 파일 설명
63 +
64 +- DroneAdaptor_LowerBody.stl : 드론 어댑터 하단부 모델링 파일
65 +- DroneAdaptor_UpperBody.stl : 드론 어댑터 상단부 모델링 파일
66 +
67 + * 출력 설정 : 적층높이 : 0.2mm , 외벽두께 : 1.2mm, 채우기 : 15%, 출력속도 : 60m/s
68 +
69 + * 출력 필라멘트 소재 : PLA
70 +- CalligraphyGuide.pdf
71 +- CalligraphyGuide.jpg
72 + * 출력 용지 사이즈 : A4
...\ No newline at end of file ...\ No newline at end of file
1 +import sys
2 +from PyQt5.QtWidgets import *
3 +from PyQt5.QtGui import *
4 +from PyQt5 import *
5 +from PyQt5.QtCore import *
6 +from PyQt5 import uic
7 +
8 +import drone
9 +from time import sleep
10 +
11 +
12 +class Dialog(QDialog):
13 + def __init__(self, parent):
14 + super(Dialog,self).__init__(parent)
15 + dialog_ui = 'ui\dialog.ui'
16 + uic.loadUi(dialog_ui, self)
17 +
18 + self.show()
19 +
20 +#'ㄱ' 파생 -start
21 +#ㄱ 다이얼로그
22 +class Consonant_G_Dialog(QDialog):
23 + def __init__(self, parent):
24 + super(Consonant_G_Dialog,self).__init__(parent)
25 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
26 + uic.loadUi(dialog_consonant_ui, self)
27 +
28 + self.show()
29 + self.setWindowTitle('G Dialog')
30 + self.ChangeButtonImage()
31 + self.ConnectButton()
32 + self.SetTextBrowser()
33 +
34 +
35 + def ConnectButton(self) :
36 + self.pButton_0.clicked.connect(self.GoFirst)
37 + self.pButton_1.clicked.connect(self.GoFirst)
38 + self.pButton_2.clicked.connect(self.GoSecond)
39 + self.pButton_3.clicked.connect(self.GoThird)
40 + self.pButton_4.clicked.connect(self.GoThird)
41 +
42 + def ChangeButtonImage(self) :
43 + #버튼 이미지 변경
44 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g1\g1"))) #라벨에 이미지추가
45 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g1\g1"))) #라벨에 이미지추가
46 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g2\g2"))) #라벨에 이미지추가
47 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g3\g3"))) #라벨에 이미지추가
48 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g3\g3"))) #라벨에 이미지추가
49 +
50 + def SetTextBrowser(self) :
51 + #텍스트 변경
52 + self.textBrowser.append("ㄱ의 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
53 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄱ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
54 + self.textBrowser.append("첫번째 획은 담담하게 시작해 담담하게 끝나고, 두번재 획은 강조되어 시작되어 서서히 끝납니다.<br>")
55 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄱ'은 (모양1)을 가집니다.<br>")
56 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄱ'은 (모양2)로 꺽인 선과 대각선으로 이루어집니다.")
57 + self.textBrowser.append("첫번째 획은 강조되어 시작되고 한번 꺾인 뒤 서서히 마무리됩니다.")
58 + self.textBrowser.append("마지막 획은 강조되어 서서히 끝나 모음과 접합니다.<br>")
59 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄱ'은 (모양3)으로 두개의 직선으로 이루어집니다.<br>")
60 + self.textBrowser.append("모드 직선은 강조되어 시작되고 서서히 끝납니다.")
61 + self.textBrowser.append("[받침]에 결합하는 'ㄱ'은 (모양3)을 따라갑니다.")
62 +
63 +
64 + def GoFirst(self) :
65 + firstDialog = Dialog(self)
66 + firstDialog.show()
67 +
68 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g1\g1_1"))
69 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
70 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
71 + firstDialog.text_0.setText("담담 -> 담담,<br> 우측 하단으로 45°")
72 +
73 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g1\g1_2"))
74 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
75 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
76 + firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
77 +
78 + #드론 연결
79 + firstDialog.pButton_drone.clicked.connect(drone.Move_G_1)
80 +
81 + def GoSecond(self):
82 + secondDialog = Dialog(self)
83 + secondDialog.show()
84 +
85 + #첫번째 획 표시
86 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g2\g2_1"))
87 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
88 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
89 + secondDialog.text_0.setText("강조 -> 서서히,<br> 우측 상단으로 30°,<br> 우측 하단으로 45°")
90 + #두번째 획 표시
91 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g2\g2_2"))
92 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
93 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
94 + secondDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
95 +
96 + #드론 연결
97 + secondDialog.pButton_drone.clicked.connect(drone.Move_G_2)
98 +
99 + def GoThird(self) :
100 + thirdDialog = Dialog(self)
101 + thirdDialog.show()
102 +
103 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g3\g3_1"))
104 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
105 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
106 + thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
107 +
108 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g3\g3_2"))
109 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
110 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
111 + thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
112 +
113 + #드론 연결
114 + thirdDialog.pButton_drone.clicked.connect(drone.Move_G_3)
115 +
116 +#ㅋ 다이얼로그
117 +class Consonant_K_Dialog(QDialog):
118 + def __init__(self, parent):
119 + super(Consonant_K_Dialog,self).__init__(parent)
120 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
121 + uic.loadUi(dialog_consonant_ui, self)
122 +
123 + self.show()
124 + self.setWindowTitle('K Dialog')
125 + self.ChangeButtonImage()
126 + self.ConnectButton()
127 + self.SetTextBrowser()
128 +
129 + def ConnectButton(self) :
130 + self.pButton_0.clicked.connect(self.GoFirst)
131 + self.pButton_1.clicked.connect(self.GoFirst)
132 + self.pButton_2.clicked.connect(self.GoSecond)
133 + self.pButton_3.clicked.connect(self.GoThird)
134 + self.pButton_4.clicked.connect(self.GoThird)
135 +
136 + def ChangeButtonImage(self) :
137 + #버튼 이미지 변경
138 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k1\k1"))) #라벨에 이미지추가
139 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k1\k1"))) #라벨에 이미지추가
140 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k2\k2"))) #라벨에 이미지추가
141 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k3\k3"))) #라벨에 이미지추가
142 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k3\k3"))) #라벨에 이미지추가
143 +
144 + def SetTextBrowser(self) :
145 + #텍스트 변경
146 + self.textBrowser.append("ㅋ 경우 위와 같이 3가지 형태로 나뉩니다.")
147 + self.textBrowser.append("ㅋ 경우, ㄱ에서 단순히 가로 획만 추가됩니다.<br>")
148 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅋ'은 (모양1)로 두개의 대각선과 직선으로 만들어집니다.")
149 + self.textBrowser.append("첫번째 획은 담담하게 시작해 담담하게 끝나고, 두번째 획은 강조되어 시작되어 서서히 끝납니다.")
150 + self.textBrowser.append("세번째 획은 강조되어 시작되어 서서히 끝납니다.<br>")
151 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅋ'은 (모양1)을 가집니다.")
152 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅋ'은 (모양2)로 곡선, 대각선, 직선으로 이루어집니다.")
153 + self.textBrowser.append("첫번째 획은 강조되어 시작되고 한번 꺾인 뒤 서서히 마무리됩니다.")
154 + self.textBrowser.append("두번째 획은 강조되어 서서히 끝나 모음과 접합니다.")
155 + self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 끝납니다.<br>")
156 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅋ'은 (모양3)으로 세개의 직선으로 이루어집니다.")
157 + self.textBrowser.append("모드 직선은 강조되어 시작되고 서서히 끝납니다.")
158 + self.textBrowser.append("[받침]에 결합하는 'ㅋ'은 (모양3)을 따라갑니다.")
159 +
160 + def GoFirst(self) :
161 + firstDialog = Dialog(self)
162 + firstDialog.show()
163 +
164 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_1"))
165 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
166 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
167 + firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 45°")
168 +
169 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_2"))
170 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
171 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
172 + firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
173 +
174 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_3"))
175 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
176 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
177 + firstDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
178 +
179 + #드론 연결
180 + firstDialog.pButton_drone.clicked.connect(drone.Move_K_1)
181 +
182 + def GoSecond(self):
183 + secondDialog = Dialog(self)
184 + secondDialog.show()
185 +
186 + #첫번째 획 표시
187 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_1"))
188 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
189 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
190 + secondDialog.text_0.setText("강조 -> 서서히,<br> 좌측 상단으로 30°,<br> 우측 하단으로 45°")
191 + #두번째 획 표시
192 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_2"))
193 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
194 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
195 + secondDialog.text_1.setText("강조 -> 서서히,<br> 우측 하단으로 45°")
196 + #세번째 획 표시
197 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_3"))
198 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
199 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
200 + secondDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
201 +
202 + #드론 연결
203 + secondDialog.pButton_drone.clicked.connect(drone.Move_K_2)
204 +
205 + def GoThird(self) :
206 + thirdDialog = Dialog(self)
207 + thirdDialog.show()
208 +
209 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_1"))
210 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
211 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
212 + thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
213 +
214 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_2"))
215 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
216 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
217 + thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
218 +
219 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_3"))
220 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
221 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
222 + thirdDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
223 +
224 + #드론 연결
225 + thirdDialog.pButton_drone.clicked.connect(drone.Move_K_3)
226 +
227 +#'ㄱ' 파생 -end
228 +
229 +#'ㄴ' 파생 -start
230 +#ㄴ 다이얼로그
231 +class Consonant_N_Dialog(QDialog):
232 + def __init__(self, parent):
233 + super(Consonant_N_Dialog,self).__init__(parent)
234 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
235 + uic.loadUi(dialog_consonant_ui, self)
236 +
237 + self.show()
238 + self.setWindowTitle('N Dialog')
239 + self.ChangeButtonImage()
240 + self.ConnectButton()
241 + self.SetTextBrowser()
242 +
243 + #버튼 연결 @
244 + def ConnectButton(self) :
245 + self.pButton_0.clicked.connect(self.GoFirst)
246 + self.pButton_1.clicked.connect(self.GoSecond)
247 + self.pButton_2.clicked.connect(self.GoThird)
248 + self.pButton_3.clicked.connect(self.GoThird)
249 + self.pButton_4.clicked.connect(self.GoSecond)
250 +
251 + #버튼 이미지 변경 @
252 + def ChangeButtonImage(self) :
253 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n1\_n1"))) #라벨에 이미지추가
254 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n2\_n2"))) #라벨에 이미지추가
255 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n3\_n3"))) #라벨에 이미지추가
256 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n3\_n3"))) #라벨에 이미지추가
257 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n2\_n2"))) #라벨에 이미지추가
258 +
259 + #텍스트 변경
260 + def SetTextBrowser(self) :
261 + self.textBrowser.append("'ㄴ' 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
262 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄴ'은 (모양1)로 두개의 직선으로 만들어집니다.")
263 + self.textBrowser.append("'ㄴ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
264 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄴ'은 (모양2)을 가집니다.")
265 + self.textBrowser.append("세로획이 가로획 보다 길고, 'ㄴ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
266 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄴ'은 (모양3)을 가집니다 .")
267 + self.textBrowser.append("가로획이 세로획 보다 길고, 'ㄴ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
268 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄴ'은 (모양3)을 따라갑니다.<br>")
269 + self.textBrowser.append("[받침]에 결합하는 'ㄴ'은 (모양2)를 따라갑니다.")
270 + self.textBrowser.append("가로획이 세로획 보다 길게 작성됩니다.")
271 +
272 + #첫번째 다이얼로그
273 + def GoFirst(self) :
274 + firstDialog = Dialog(self)
275 + firstDialog.show()
276 +
277 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n1\_n1_1"))
278 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
279 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
280 + firstDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
281 +
282 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n1\_n1_2"))
283 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
284 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
285 + firstDialog.text_1.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
286 +
287 + #드론 연결
288 + firstDialog.pButton_drone.clicked.connect(drone.Move_N_1)
289 +
290 + #두번째 다이얼로그
291 + def GoSecond(self):
292 + secondDialog = Dialog(self)
293 + secondDialog.show()
294 +
295 + #첫번째 획 표시
296 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n2\_n2_1"))
297 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
298 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
299 + secondDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
300 + #두번째 획 표시
301 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n2\_n2_2"))
302 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
303 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
304 + secondDialog.text_1.setText("강조 -> 담담히,<br> 우측 상단으로 10°")
305 +
306 + #드론 연결
307 + secondDialog.pButton_drone.clicked.connect(drone.Move_N_2)
308 +
309 + #세번째 다이얼로그
310 + def GoThird(self) :
311 + thirdDialog = Dialog(self)
312 + thirdDialog.show()
313 +
314 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n3\_n3_1"))
315 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
316 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
317 + thirdDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
318 +
319 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n3\_n3_2"))
320 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
321 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
322 + thirdDialog.text_1.setText("강조 -> 담담(강조),<br> 우측 상단으로 10°")
323 +
324 + #드론 연결
325 + thirdDialog.pButton_drone.clicked.connect(drone.Move_N_3)
326 +
327 +#ㄷ 다이얼로그
328 +class Consonant_D_Dialog(QDialog):
329 + def __init__(self, parent):
330 + super(Consonant_D_Dialog,self).__init__(parent)
331 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
332 + uic.loadUi(dialog_consonant_ui, self)
333 +
334 + self.show()
335 + self.setWindowTitle('D Dialog')
336 + self.ChangeButtonImage()
337 + self.ConnectButton()
338 + self.SetTextBrowser()
339 +
340 + #버튼 연결 @
341 + def ConnectButton(self) :
342 + self.pButton_0.clicked.connect(self.GoFirst)
343 + self.pButton_1.clicked.connect(self.GoSecond)
344 + self.pButton_2.clicked.connect(self.GoThird)
345 + self.pButton_3.clicked.connect(self.GoThird)
346 + self.pButton_4.clicked.connect(self.GoSecond)
347 +
348 + #버튼 이미지 변경 @
349 + def ChangeButtonImage(self) :
350 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d1\d1"))) #라벨에 이미지추가
351 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d2\d2"))) #라벨에 이미지추가
352 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d3\d3"))) #라벨에 이미지추가
353 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d3\d3"))) #라벨에 이미지추가
354 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d2\d2"))) #라벨에 이미지추가
355 +
356 + #텍스트 변경
357 + def SetTextBrowser(self) :
358 + self.textBrowser.append("'ㄷ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
359 + self.textBrowser.append("'ㄷ'은 단순히 ㄴ에서 강조되어 시작되고 강조되어 마무리된 획이 위에 추가됩니다.<br>")
360 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄷ'은 (모양1)로 세개의 직선으로 만들어집니다.")
361 + self.textBrowser.append("'ㄷ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
362 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄷ'은 (모양2)을 가집니다.")
363 + self.textBrowser.append("두번째 획이 세번째 획 보다 길고, 'ㄷ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
364 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄷ'은 (모양3)을 가집니다 .")
365 + self.textBrowser.append("두번째 획이 세번째 획 보다 길고, 'ㄷ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
366 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄷ'은 (모양3)을 따라갑니다.<br>")
367 + self.textBrowser.append("[받침]에 결합하는 'ㄷ'은 (모양2)를 따라갑니다.")
368 + self.textBrowser.append("세번째 획이 두번째 획 보다 길게 작성됩니다.")
369 +
370 +
371 + #첫번째 다이얼로그
372 + def GoFirst(self) :
373 + firstDialog = Dialog(self)
374 + firstDialog.show()
375 + #첫번째 획
376 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_1"))
377 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
378 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
379 + firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
380 + #두번째 획
381 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_2"))
382 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
383 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
384 + firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
385 + #세번째 획
386 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_3"))
387 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
388 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
389 + firstDialog.text_2.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
390 +
391 + #드론 연결
392 + firstDialog.pButton_drone.clicked.connect(drone.Move_D_1)
393 +
394 + #두번째 다이얼로그
395 + def GoSecond(self):
396 + secondDialog = Dialog(self)
397 + secondDialog.show()
398 +
399 + #첫번째 획 표시
400 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_1"))
401 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
402 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
403 + secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
404 + #두번째 획 표시
405 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_2"))
406 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
407 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
408 + secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
409 + #세번째 획
410 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_3"))
411 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
412 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
413 + secondDialog.text_2.setText("강조 -> 담담,<br> 우측 상단으로 10°")
414 +
415 + #드론 연결
416 + secondDialog.pButton_drone.clicked.connect(drone.Move_D_2)
417 +
418 + #세번째 다이얼로그
419 + def GoThird(self) :
420 + thirdDialog = Dialog(self)
421 + thirdDialog.show()
422 +
423 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_1"))
424 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
425 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
426 + thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
427 +
428 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_2"))
429 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
430 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
431 + thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
432 + #세번째 획
433 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_3"))
434 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
435 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
436 + thirdDialog.text_2.setText("강조 -> 강조(담담),<br> 우측으로")
437 +
438 + #드론 연결
439 + thirdDialog.pButton_drone.clicked.connect(drone.Move_D_3)
440 +
441 +#ㅌ 다이얼로그
442 +class Consonant_T_Dialog(QDialog):
443 + def __init__(self, parent):
444 + super(Consonant_T_Dialog,self).__init__(parent)
445 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
446 + uic.loadUi(dialog_consonant_ui, self)
447 +
448 + self.show()
449 + self.setWindowTitle('T Dialog')
450 + self.ChangeButtonImage()
451 + self.ConnectButton()
452 + self.SetTextBrowser()
453 +
454 + #버튼 연결 @
455 + def ConnectButton(self) :
456 + self.pButton_0.clicked.connect(self.GoFirst)
457 + self.pButton_1.clicked.connect(self.GoSecond)
458 + self.pButton_2.clicked.connect(self.GoThird)
459 + self.pButton_3.clicked.connect(self.GoThird)
460 + self.pButton_4.clicked.connect(self.GoSecond)
461 +
462 + #버튼 이미지 변경 @
463 + def ChangeButtonImage(self) :
464 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t1\_t1"))) #라벨에 이미지추가
465 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t2\_t2"))) #라벨에 이미지추가
466 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t3\_t3"))) #라벨에 이미지추가
467 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t3\_t3"))) #라벨에 이미지추가
468 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t2\_t2"))) #라벨에 이미지추가
469 +
470 + #텍스트 변경
471 + def SetTextBrowser(self) :
472 + self.textBrowser.append("'ㅌ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
473 + self.textBrowser.append("'ㅌ'은 단순히 ㄷ에서 강조되어 시작되고 강조되어 마무리된 획이 위에 추가됩니다.<br>")
474 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅌ'은 (모양1)로 네개의 직선으로 만들어집니다.")
475 + self.textBrowser.append("'ㅌ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
476 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅌ'은 (모양2)을 가집니다.")
477 + self.textBrowser.append("세번째 획이 네번째 획 보다 길고, 'ㅌ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
478 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅌ'은 (모양3)을 가집니다 .")
479 + self.textBrowser.append("세번째 획이 네번째 획 보다 길고, 'ㅌ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
480 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅌ'은 (모양3)을 따라갑니다.<br>")
481 + self.textBrowser.append("[받침]에 결합하는 'ㅌ'은 (모양2)를 따라갑니다.")
482 + self.textBrowser.append("네번째 획이 세번째 획 보다 길게 작성됩니다.")
483 +
484 + #첫번째 다이얼로그
485 + def GoFirst(self) :
486 + firstDialog = Dialog(self)
487 + firstDialog.show()
488 + #첫번째 획
489 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_1"))
490 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
491 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
492 + firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로°")
493 + #두번째 획
494 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_2"))
495 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
496 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
497 + firstDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
498 + #세번째 획
499 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_3"))
500 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
501 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
502 + firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
503 + #네번째 획
504 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_4"))
505 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
506 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
507 + firstDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
508 +
509 + #드론 연결
510 + firstDialog.pButton_drone.clicked.connect(drone.Move_T_3)
511 +
512 + #두번째 다이얼로그
513 + def GoSecond(self):
514 + secondDialog = Dialog(self)
515 + secondDialog.show()
516 +
517 + #첫번째 획 표시
518 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_1"))
519 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
520 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
521 + secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
522 + #두번째 획 표시
523 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_2"))
524 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
525 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
526 + secondDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
527 + #세번째 획
528 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_3"))
529 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
530 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
531 + secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
532 + #네번째 획
533 + secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_4"))
534 + secondDialog.image_3.setStyleSheet("border: 1px solid black;")
535 + secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
536 + secondDialog.text_3.setText("강조 -> 담담,<br> 우측 상단으로 10°")
537 +
538 + #드론 연결
539 + secondDialog.pButton_drone.clicked.connect(drone.Move_T_2)
540 +
541 + #세번째 다이얼로그
542 + def GoThird(self) :
543 + thirdDialog = Dialog(self)
544 + thirdDialog.show()
545 +
546 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_1"))
547 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
548 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
549 + thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
550 +
551 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_2"))
552 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
553 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
554 + thirdDialog.text_1.setText("강조 -> 강조,<br> 우측으로°")
555 + #세번째 획
556 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_3"))
557 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
558 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
559 + thirdDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
560 + #네번째 획
561 + thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_4"))
562 + thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
563 + thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
564 + thirdDialog.text_3.setText("강조 -> 담담(강조),<br> 우측으로")
565 +
566 + #드론 연결
567 + thirdDialog.pButton_drone.clicked.connect(drone.Move_T_3)
568 +
569 +#ㄹ 다이얼로그
570 +class Consonant_L_Dialog(QDialog):
571 + def __init__(self, parent):
572 + super(Consonant_L_Dialog,self).__init__(parent)
573 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
574 + uic.loadUi(dialog_consonant_ui, self)
575 +
576 + self.show()
577 + self.setWindowTitle('L Dialog')
578 + self.ChangeButtonImage()
579 + self.ChangeButtonImage()
580 + self.ConnectButton()
581 + self.SetTextBrowser()
582 +
583 + #버튼 연결 @
584 + def ConnectButton(self) :
585 + self.pButton_0.clicked.connect(self.GoFirst)
586 + self.pButton_1.clicked.connect(self.GoSecond)
587 + self.pButton_2.clicked.connect(self.GoThird)
588 + self.pButton_3.clicked.connect(self.GoThird)
589 + self.pButton_4.clicked.connect(self.GoSecond)
590 +
591 + #버튼 이미지 변경 @
592 + def ChangeButtonImage(self) :
593 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l1\l1"))) #라벨에 이미지추가
594 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l2\l2"))) #라벨에 이미지추가
595 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l3\l3"))) #라벨에 이미지추가
596 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l3\l3"))) #라벨에 이미지추가
597 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l2\l2"))) #라벨에 이미지추가
598 +
599 + #텍스트 변경
600 + def SetTextBrowser(self) :
601 + self.textBrowser.append("'ㄹ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
602 + self.textBrowser.append("'ㄹ'은 단순히 ㅌ에서 강조되어 시작되고 강조되어 마무리된 획이 첫번째 획 다음에 추가됩니다.<br>")
603 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄹ'은 (모양1)로 다섯 개의 직선으로 만들어집니다.")
604 + self.textBrowser.append("'ㄹ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
605 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄹ'은 (모양2)을 가집니다.")
606 + self.textBrowser.append("네번째 획이 다섯 번째 획 보다 길고, 'ㅌ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
607 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄹ'은 (모양3)을 가집니다 .")
608 + self.textBrowser.append("네번째 획이 다섯 째 획 보다 길고, 'ㅌ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
609 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄹ'은 (모양3)을 따라갑니다.<br>")
610 + self.textBrowser.append("[받침]에 결합하는 'ㄹ'은 (모양2)를 따라갑니다.")
611 + self.textBrowser.append("전반적으로 가로 획이 세로 획 보다 길게 작성됩니다.")
612 +
613 + #첫번째 다이얼로그
614 + def GoFirst(self) :
615 + firstDialog = Dialog(self)
616 + firstDialog.show()
617 + #첫번째 획
618 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_1"))
619 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
620 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
621 + firstDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
622 + #두번째 획
623 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_2"))
624 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
625 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
626 + firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
627 + #세번째 획
628 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_3"))
629 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
630 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
631 + firstDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
632 + #네번째 획
633 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_4"))
634 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
635 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
636 + firstDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
637 + #다섯 번째 획
638 + firstDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_5"))
639 + firstDialog.image_4.setStyleSheet("border: 1px solid black;")
640 + firstDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
641 + firstDialog.text_4.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
642 +
643 + #드론 연결
644 + firstDialog.pButton_drone.clicked.connect(drone.Move_L_1)
645 +
646 + #두번째 다이얼로그
647 + def GoSecond(self):
648 + secondDialog = Dialog(self)
649 + secondDialog.show()
650 +
651 + #첫번째 획 표시
652 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_1"))
653 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
654 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
655 + secondDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
656 + #두번째 획 표시
657 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_2"))
658 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
659 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
660 + secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
661 + #세번째 획
662 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_3"))
663 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
664 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
665 + secondDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
666 + #네번째 획
667 + secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_4"))
668 + secondDialog.image_3.setStyleSheet("border: 1px solid black;")
669 + secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
670 + secondDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
671 + #다섯 번째 획
672 + secondDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_5"))
673 + secondDialog.image_4.setStyleSheet("border: 1px solid black;")
674 + secondDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
675 + secondDialog.text_4.setText("강조 -> 담담,<br> 우측 상단으로 10°")
676 +
677 +
678 + #드론 연결
679 + secondDialog.pButton_drone.clicked.connect(drone.Move_L_2)
680 +
681 + #세번째 다이얼로그
682 + def GoThird(self) :
683 + thirdDialog = Dialog(self)
684 + thirdDialog.show()
685 +
686 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_1"))
687 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
688 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
689 + thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
690 +
691 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_2"))
692 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
693 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
694 + thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
695 + #세번째 획
696 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_3"))
697 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
698 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
699 + thirdDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
700 + #네번째 획
701 + thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_4"))
702 + thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
703 + thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
704 + thirdDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
705 + #다섯 번째 획
706 + thirdDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_5"))
707 + thirdDialog.image_4.setStyleSheet("border: 1px solid black;")
708 + thirdDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
709 + thirdDialog.text_4.setText("강조 -> 담담(강조),<br> 우측으로")
710 +
711 +
712 + #드론 연결
713 + thirdDialog.pButton_drone.clicked.connect(drone.Move_L_3)
714 +
715 +#'ㄴ' 파생 -end
716 +
717 +#'ㅁ' 파생 -start
718 +#ㅁ 다이얼로그
719 +class Consonant_M_Dialog(QDialog):
720 + def __init__(self, parent):
721 + super(Consonant_M_Dialog,self).__init__(parent)
722 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
723 + uic.loadUi(dialog_consonant_ui, self)
724 +
725 + self.show()
726 + self.setWindowTitle('M Dialog')
727 + self.ChangeButtonImage()
728 + self.ConnectButton()
729 + self.SetTextBrowser()
730 +
731 + #버튼 연결 @
732 + def ConnectButton(self) :
733 + self.pButton_0.clicked.connect(self.GoFirst)
734 + self.pButton_1.clicked.connect(self.GoFirst)
735 + self.pButton_2.clicked.connect(self.GoFirst)
736 + self.pButton_3.clicked.connect(self.GoFirst)
737 + self.pButton_4.clicked.connect(self.GoFirst)
738 +
739 + #버튼 이미지 변경 @
740 + def ChangeButtonImage(self) :
741 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
742 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
743 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
744 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
745 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
746 +
747 + #텍스트 변경
748 + def SetTextBrowser(self) :
749 + self.textBrowser.append("'ㅁ'의 경우, 단순히 하나의 형태를 가집니다.<br>")
750 + self.textBrowser.append("첫번째 획은 세로로 강조되어 시작되고 담담히 마무리되고")
751 + self.textBrowser.append("두번째 획은 가로로 강조되어 시작되고 서서히 마무리됩니다.")
752 + self.textBrowser.append("세번째 획은 세로로 강조되어 시작되고 서서히 마무리되고")
753 + self.textBrowser.append("네번째 획은 가로로 강조되어 시작되고 담담히 마무리됩니다.<br>")
754 + self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
755 + self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
756 +
757 + #첫번째 다이얼로그
758 + def GoFirst(self) :
759 + firstDialog = Dialog(self)
760 + firstDialog.show()
761 + #첫번째 획
762 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\m\m1_1"))
763 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
764 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
765 + firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 10°")
766 + #두번째 획
767 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\m\m1_2"))
768 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
769 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
770 + firstDialog.text_1.setText("강조 -> 서서히,<br> 우측으로")
771 + #세번째 획
772 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\m\m1_3"))
773 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
774 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
775 + firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
776 + #네번째 획
777 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\m\m1_4"))
778 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
779 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
780 + firstDialog.text_3.setText("서서히 -> 담담(강조),<br> 우측으로")
781 +
782 + #드론 연결
783 + firstDialog.pButton_drone.clicked.connect(drone.Move_M_1)
784 +
785 +#ㅂ 다이얼로그
786 +class Consonant_B_Dialog(QDialog):
787 + def __init__(self, parent):
788 + super(Consonant_B_Dialog,self).__init__(parent)
789 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
790 + uic.loadUi(dialog_consonant_ui, self)
791 +
792 + self.show()
793 + self.setWindowTitle('B Dialog')
794 + self.ChangeButtonImage()
795 + self.ConnectButton()
796 + self.SetTextBrowser()
797 +
798 + #버튼 연결 @
799 + def ConnectButton(self) :
800 + self.pButton_0.clicked.connect(self.GoFirst)
801 + self.pButton_1.clicked.connect(self.GoFirst)
802 + self.pButton_2.clicked.connect(self.GoFirst)
803 + self.pButton_3.clicked.connect(self.GoFirst)
804 + self.pButton_4.clicked.connect(self.GoFirst)
805 +
806 + #버튼 이미지 변경 @
807 + def ChangeButtonImage(self) :
808 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
809 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
810 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
811 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
812 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
813 +
814 + #텍스트 변경
815 + def SetTextBrowser(self) :
816 + self.textBrowser.append("'ㅂ'의 경우, 'ㅁ'과 같이 단순히 하나의 형태를 가집니다.")
817 + self.textBrowser.append("'ㅁ'과 다른 점은 획순이 변경되어 세로 획을 모두 마무리후 가로획을 그립니다.<br>")
818 + self.textBrowser.append("첫번째 획은 세로로 강조되어 시작되고 담담히 마무리되고")
819 + self.textBrowser.append("두번째 획은 첫번째 획보다 조금 위에서 세로로 강조되어 시작되고 서서히 마무리됩니다.")
820 + self.textBrowser.append("세번째 획은 가로로 서서히 시작되어 담담히 마무리되고")
821 + self.textBrowser.append("네번째 획은 가로로 강조되어 시작되고 담담히 마무리됩니다.<br>")
822 + self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
823 + self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
824 +
825 + #첫번째 다이얼로그
826 + def GoFirst(self) :
827 + firstDialog = Dialog(self)
828 + firstDialog.show()
829 + #첫번째 획
830 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_b\_b1_1"))
831 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
832 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
833 + firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 10°")
834 + #두번째 획
835 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_b\_b1_2"))
836 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
837 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
838 + firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
839 + #세번째 획
840 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_b\_b1_3"))
841 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
842 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
843 + firstDialog.text_2.setText("서서히 -> 강조,<br> 우측으로")
844 + #네번째 획
845 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_b\_b1_4"))
846 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
847 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
848 + firstDialog.text_3.setText("서서히 -> 담담(강조),<br> 우측으로")
849 +
850 + #드론 연결
851 + firstDialog.pButton_drone.clicked.connect(drone.Move_B_1)
852 +
853 +#ㅍ 다이얼로그
854 +class Consonant_P_Dialog(QDialog):
855 + def __init__(self, parent):
856 + super(Consonant_P_Dialog,self).__init__(parent)
857 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
858 + uic.loadUi(dialog_consonant_ui, self)
859 +
860 + self.show()
861 + self.setWindowTitle('P Dialog')
862 + self.ChangeButtonImage()
863 + self.ConnectButton()
864 + self.SetTextBrowser()
865 +
866 + #버튼 연결 @
867 + def ConnectButton(self) :
868 + self.pButton_0.clicked.connect(self.GoFirst)
869 + self.pButton_1.clicked.connect(self.GoSecond)
870 + self.pButton_2.clicked.connect(self.GoSecond)
871 + self.pButton_3.clicked.connect(self.GoSecond)
872 + self.pButton_4.clicked.connect(self.GoSecond)
873 +
874 + #버튼 이미지 변경 @
875 + def ChangeButtonImage(self) :
876 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p1\p1"))) #라벨에 이미지추가
877 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
878 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
879 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
880 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
881 +
882 + #텍스트 변경
883 + def SetTextBrowser(self) :
884 + self.textBrowser.append("'ㅍ'의 경우, 2가지의 형태를 가집니다.")
885 + self.textBrowser.append("'ㅍ'의 마지막 획이 모음과 결합되는지에 따라 형태가 달라집니다.<br>")
886 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅍ'은 (모양1)로 4개의 직선으로 만들어집니다.")
887 + self.textBrowser.append("첫번째 획은 가로로 강조되어 시작해서 강조되어 마무리됩니다.")
888 + self.textBrowser.append("두번째 획은 세로로 강조되어 시작해서 서서히 마무리됩니다.")
889 + self.textBrowser.append("첫번째 획은 세로로 두번째 획보다 약간 위에서 강조되어 시작해서 서서히 마무리됩니다.")
890 + self.textBrowser.append("네번째 획은 가로로 강조되어 시작해서 서서히 마무리됩니다.")
891 + self.textBrowser.append("마지막 획은 모음과 결합됩니다.")
892 + self.textBrowser.append("두번째 획의 경우 네번째 획에 결합되지 않으면 날리지 않게 마무리 합니다.<br>")
893 +
894 + self.textBrowser.append("나머지 경우의 'ㅍ'은 (모양2)로 4개의 직선으로 만들어집니다.")
895 + self.textBrowser.append("마지막획만 서서히 마무리합니다.<br>")
896 + self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
897 + self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
898 +
899 + #첫번째 다이얼로그
900 + def GoFirst(self) :
901 + firstDialog = Dialog(self)
902 + firstDialog.show()
903 + #첫번째 획
904 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_1"))
905 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
906 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
907 + firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
908 + #두번째 획
909 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_2"))
910 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
911 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
912 + firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
913 + #세번째 획
914 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_3"))
915 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
916 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
917 + firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
918 + #네번째 획
919 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_4"))
920 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
921 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
922 + firstDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
923 +
924 + #드론 연결
925 + firstDialog.pButton_drone.clicked.connect(drone.Move_P_1)
926 +
927 + #두번째 다이얼로그
928 + def GoSecond(self):
929 + secondDialog = Dialog(self)
930 + secondDialog.show()
931 +
932 + #첫번째 획 표시
933 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_1"))
934 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
935 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
936 + secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
937 + #두번째 획 표시
938 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_2"))
939 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
940 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
941 + secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
942 + #세번째 획
943 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_3"))
944 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
945 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
946 + secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
947 + #네번째 획
948 + secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_4"))
949 + secondDialog.image_3.setStyleSheet("border: 1px solid black;")
950 + secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
951 + secondDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
952 +
953 + #드론 연결
954 + secondDialog.pButton_drone.clicked.connect(drone.Move_P_2)
955 +
956 +#'ㅁ' 파생 -end
957 +
958 +#'ㅅ' 파생 -start
959 +#ㅅ 다이얼로그
960 +class Consonant_S_Dialog(QDialog):
961 + def __init__(self, parent):
962 + super(Consonant_S_Dialog,self).__init__(parent)
963 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
964 + uic.loadUi(dialog_consonant_ui, self)
965 +
966 + self.show()
967 + self.setWindowTitle('S Dialog')
968 + self.ChangeButtonImage()
969 + self.ConnectButton()
970 + self.SetTextBrowser()
971 +
972 + #버튼 연결 @
973 + def ConnectButton(self) :
974 + self.pButton_0.clicked.connect(self.GoFirst)
975 + self.pButton_1.clicked.connect(self.GoSecond)
976 + self.pButton_2.clicked.connect(self.GoThird)
977 + self.pButton_3.clicked.connect(self.GoThird)
978 + self.pButton_4.clicked.connect(self.GoFirst)
979 +
980 + #버튼 이미지 변경 @
981 + def ChangeButtonImage(self) :
982 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s1\s1"))) #라벨에 이미지추가
983 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s2\s2"))) #라벨에 이미지추가
984 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s3\s3"))) #라벨에 이미지추가
985 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s3\s3"))) #라벨에 이미지추가
986 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s1\s1"))) #라벨에 이미지추가
987 +
988 + #텍스트 변경
989 + def SetTextBrowser(self) :
990 + self.textBrowser.append("'ㅅ' 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
991 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅅ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
992 + self.textBrowser.append("첫번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
993 + self.textBrowser.append("두번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
994 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅅ'은 (모양2)을 가집니다.")
995 + self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
996 + self.textBrowser.append("첫번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
997 + self.textBrowser.append("두번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
998 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅅ'은 (모양3)을 가집니다 .")
999 + self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
1000 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅅ'은 (모양3)을 따라갑니다.<br>")
1001 + self.textBrowser.append("[받침]에 결합하는 'ㅅ'은 (모양1)을 따라갑니다.")
1002 + self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
1003 +
1004 + #첫번째 다이얼로그
1005 + def GoFirst(self) :
1006 + firstDialog = Dialog(self)
1007 + firstDialog.show()
1008 +
1009 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s1\s1_1"))
1010 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
1011 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1012 + firstDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1013 +
1014 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s1\s1_2"))
1015 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
1016 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1017 + firstDialog.text_1.setText("서서히 -> 담담,<br> 우측 하단으로 45°")
1018 +
1019 + #드론 연결
1020 + firstDialog.pButton_drone.clicked.connect(drone.Move_S_1)
1021 +
1022 + #두번째 다이얼로그
1023 + def GoSecond(self):
1024 + secondDialog = Dialog(self)
1025 + secondDialog.show()
1026 +
1027 + #첫번째 획 표시
1028 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s2\s2_1"))
1029 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
1030 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1031 + secondDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1032 + #두번째 획 표시
1033 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s2\s2_2"))
1034 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
1035 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1036 + secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
1037 +
1038 + #드론 연결
1039 + secondDialog.pButton_drone.clicked.connect(drone.Move_S_2)
1040 +
1041 + #세번째 다이얼로그
1042 + def GoThird(self) :
1043 + thirdDialog = Dialog(self)
1044 + thirdDialog.show()
1045 +
1046 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s3\s3_1"))
1047 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
1048 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1049 + thirdDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
1050 +
1051 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s3\s3_2"))
1052 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
1053 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1054 + thirdDialog.text_1.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
1055 +
1056 + #드론 연결
1057 + thirdDialog.pButton_drone.clicked.connect(drone.Move_S_3)
1058 +
1059 +#ㅈ 다이얼로그
1060 +class Consonant_J_Dialog(QDialog):
1061 + def __init__(self, parent):
1062 + super(Consonant_J_Dialog,self).__init__(parent)
1063 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
1064 + uic.loadUi(dialog_consonant_ui, self)
1065 +
1066 + self.show()
1067 + self.setWindowTitle('J Dialog')
1068 + self.ChangeButtonImage()
1069 + self.ConnectButton()
1070 + self.SetTextBrowser()
1071 +
1072 + #버튼 연결 @
1073 + def ConnectButton(self) :
1074 + self.pButton_0.clicked.connect(self.GoFirst)
1075 + self.pButton_1.clicked.connect(self.GoSecond)
1076 + self.pButton_2.clicked.connect(self.GoThird)
1077 + self.pButton_3.clicked.connect(self.GoThird)
1078 + self.pButton_4.clicked.connect(self.GoFirst)
1079 +
1080 + #버튼 이미지 변경 @
1081 + def ChangeButtonImage(self) :
1082 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j1\j1"))) #라벨에 이미지추가
1083 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j2\j2"))) #라벨에 이미지추가
1084 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j3\j3"))) #라벨에 이미지추가
1085 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j3\j3"))) #라벨에 이미지추가
1086 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j1\j1"))) #라벨에 이미지추가
1087 +
1088 + #텍스트 변경
1089 + def SetTextBrowser(self) :
1090 + self.textBrowser.append("'ㅈ' 경우, 'ㅅ'과 비슷하게 위와 같은 3가지 형태로 나뉩니다.")
1091 + self.textBrowser.append("유일한 차이점은 첫번째 획으로 강조되어 시작되고 강조되어 마무리 되는 가로획을 가집니다.<br>")
1092 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅈ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
1093 + self.textBrowser.append("두번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
1094 + self.textBrowser.append("세번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
1095 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅈ'은 (모양2)을 가집니다.")
1096 + self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
1097 + self.textBrowser.append("두번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
1098 + self.textBrowser.append("세번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
1099 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅈ'은 (모양3)을 가집니다 .")
1100 + self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
1101 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅈ'은 (모양3)을 따라갑니다.<br>")
1102 + self.textBrowser.append("[받침]에 결합하는 'ㅈ'은 (모양1)을 따라갑니다.")
1103 + self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
1104 +
1105 + #첫번째 다이얼로그
1106 + def GoFirst(self) :
1107 + firstDialog = Dialog(self)
1108 + firstDialog.show()
1109 + #첫번째 획
1110 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_1"))
1111 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
1112 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1113 + firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
1114 + #두번째 획
1115 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_2"))
1116 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
1117 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1118 + firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1119 + #세번째 획
1120 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_3"))
1121 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
1122 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1123 + firstDialog.text_2.setText("서서히 -> 담담,<br> 좌측 하단으로 45°")
1124 +
1125 + #드론 연결
1126 + firstDialog.pButton_drone.clicked.connect(drone.Move_J_1)
1127 +
1128 +
1129 + #두번째 다이얼로그
1130 + def GoSecond(self):
1131 + secondDialog = Dialog(self)
1132 + secondDialog.show()
1133 +
1134 + #첫번째 획 표시
1135 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_1"))
1136 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
1137 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1138 + secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
1139 + #두번째 획 표시
1140 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_2"))
1141 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
1142 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1143 + secondDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1144 + #세번째 획
1145 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_3"))
1146 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
1147 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1148 + secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
1149 +
1150 + #드론 연결
1151 + secondDialog.pButton_drone.clicked.connect(drone.Move_J_2)
1152 +
1153 + #세번째 다이얼로그
1154 + def GoThird(self) :
1155 + thirdDialog = Dialog(self)
1156 + thirdDialog.show()
1157 +
1158 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_1"))
1159 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
1160 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1161 + thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
1162 +
1163 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_2"))
1164 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
1165 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1166 + thirdDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
1167 + #세번째 획
1168 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_3"))
1169 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
1170 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1171 + thirdDialog.text_2.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
1172 +
1173 + #드론 연결
1174 + thirdDialog.pButton_drone.clicked.connect(drone.Move_J_3)
1175 +
1176 +#ㅊ 다이얼로그
1177 +class Consonant_Ch_Dialog(QDialog):
1178 + def __init__(self, parent):
1179 + super(Consonant_Ch_Dialog,self).__init__(parent)
1180 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
1181 + uic.loadUi(dialog_consonant_ui, self)
1182 +
1183 + self.show()
1184 + self.setWindowTitle('Ch Dialog')
1185 + self.ChangeButtonImage()
1186 + self.ConnectButton()
1187 + self.SetTextBrowser()
1188 +
1189 + #버튼 연결 @
1190 + def ConnectButton(self) :
1191 + self.pButton_0.clicked.connect(self.GoFirst)
1192 + self.pButton_1.clicked.connect(self.GoSecond)
1193 + self.pButton_2.clicked.connect(self.GoThird)
1194 + self.pButton_3.clicked.connect(self.GoThird)
1195 + self.pButton_4.clicked.connect(self.GoFirst)
1196 +
1197 + #버튼 이미지 변경 @
1198 + def ChangeButtonImage(self) :
1199 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch1\ch1"))) #라벨에 이미지추가
1200 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch2\ch2"))) #라벨에 이미지추가
1201 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch3\ch3"))) #라벨에 이미지추가
1202 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch3\ch3"))) #라벨에 이미지추가
1203 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch1\ch1"))) #라벨에 이미지추가
1204 +
1205 + #텍스트 변경
1206 + def SetTextBrowser(self) :
1207 + self.textBrowser.append("'ㅊ' 경우, 'ㅈ'과 비슷하게 위와 같은 3가지 형태로 나뉩니다.")
1208 + self.textBrowser.append("유일한 차이점은 첫번째 획으로 강조되어 시작되고 다담히 마무리 되는 가로획을 추가로 가집니다.<br>")
1209 + self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅈ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
1210 + self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
1211 + self.textBrowser.append("네번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
1212 + self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅈ'은 (모양2)을 가집니다.")
1213 + self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
1214 + self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
1215 + self.textBrowser.append("네번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
1216 + self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅈ'은 (모양3)을 가집니다 .")
1217 + self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
1218 + self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅈ'은 (모양3)을 따라갑니다.<br>")
1219 + self.textBrowser.append("[받침]에 결합하는 'ㅈ'은 (모양1)을 따라갑니다.")
1220 + self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
1221 +
1222 + #첫번째 다이얼로그
1223 + def GoFirst(self) :
1224 + firstDialog = Dialog(self)
1225 + firstDialog.show()
1226 + #첫번째 획
1227 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_1"))
1228 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
1229 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1230 + firstDialog.text_0.setText("강조 -> 담담,<br> 좌측 하단으로 10°")
1231 + #두번째 획
1232 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_2"))
1233 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
1234 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1235 + firstDialog.text_1.setText("강조 -> 강조,<br> 좌측으로")
1236 + #세번째 획
1237 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_3"))
1238 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
1239 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1240 + firstDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1241 + #네번째 획
1242 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_4"))
1243 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
1244 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
1245 + firstDialog.text_3.setText("서서히 -> 담담,<br> 우측 하단으로 45°")
1246 +
1247 + #드론 연결
1248 + firstDialog.pButton_drone.clicked.connect(drone.Move_Ch_1)
1249 +
1250 +
1251 + #두번째 다이얼로그
1252 + def GoSecond(self):
1253 + secondDialog = Dialog(self)
1254 + secondDialog.show()
1255 +
1256 + #첫번째 획 표시
1257 + secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_1"))
1258 + secondDialog.image_0.setStyleSheet("border: 1px solid black;")
1259 + secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1260 + secondDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
1261 + #두번째 획 표시
1262 + secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_2"))
1263 + secondDialog.image_1.setStyleSheet("border: 1px solid black;")
1264 + secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1265 + secondDialog.text_1.setText("강조 -> 강조,<br> 좌측으로")
1266 + #세번째 획
1267 + secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_3"))
1268 + secondDialog.image_2.setStyleSheet("border: 1px solid black;")
1269 + secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1270 + secondDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
1271 + #네번째 획
1272 + secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_4"))
1273 + secondDialog.image_3.setStyleSheet("border: 1px solid black;")
1274 + secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
1275 + secondDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
1276 +
1277 + #드론 연결
1278 + secondDialog.pButton_drone.clicked.connect(drone.Move_Ch_2)
1279 +
1280 + #세번째 다이얼로그
1281 + def GoThird(self) :
1282 + thirdDialog = Dialog(self)
1283 + thirdDialog.show()
1284 +
1285 + thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_1"))
1286 + thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
1287 + thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1288 + thirdDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
1289 +
1290 + thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_2"))
1291 + thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
1292 + thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1293 + thirdDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
1294 + #세번째 획
1295 + thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_3"))
1296 + thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
1297 + thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1298 + thirdDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
1299 + #네번째 획
1300 + thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_4"))
1301 + thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
1302 + thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
1303 + thirdDialog.text_3.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
1304 +
1305 + #드론 연결
1306 + thirdDialog.pButton_drone.clicked.connect(drone.Move_Ch_3)
1307 +
1308 +#'ㅅ' 파생 -end
1309 +
1310 +#'ㅇ' 파생 -start
1311 +#ㅇ 다이얼로그
1312 +class Consonant_Ng_Dialog(QDialog):
1313 + def __init__(self, parent):
1314 + super(Consonant_Ng_Dialog,self).__init__(parent)
1315 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
1316 + uic.loadUi(dialog_consonant_ui, self)
1317 +
1318 + self.show()
1319 + self.setWindowTitle('Ng Dialog')
1320 + self.ChangeButtonImage()
1321 + self.ConnectButton()
1322 + self.SetTextBrowser()
1323 +
1324 + #버튼 연결 @
1325 + def ConnectButton(self) :
1326 + self.pButton_0.clicked.connect(self.GoFirst)
1327 + self.pButton_1.clicked.connect(self.GoFirst)
1328 + self.pButton_2.clicked.connect(self.GoFirst)
1329 + self.pButton_3.clicked.connect(self.GoFirst)
1330 + self.pButton_4.clicked.connect(self.GoFirst)
1331 +
1332 + #버튼 이미지 변경 @
1333 + def ChangeButtonImage(self) :
1334 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
1335 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
1336 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
1337 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
1338 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
1339 +
1340 + #텍스트 변경
1341 + def SetTextBrowser(self) :
1342 + self.textBrowser.append("'ㅇ' 경우, 오직 하나의 형태로 나뉩니다.<br>")
1343 + self.textBrowser.append("총 2가지의 곡선으로 이루어지는데, ")
1344 + self.textBrowser.append("첫번째 곡선의 경우 좌측으로 가는 담담히 시작해 서서히 끝나는 곡선이고")
1345 + self.textBrowser.append("두번째 곡선의 경우 우측으로 가는 담담히 시작해 서서히 끝나는 곡선입니다.<br>")
1346 + self.textBrowser.append("추가적으로 'ㅇ'은 결합되는 모음 및 위치에 따라 적절히 가로,세로 비율을 조절해줍니다.<br>")
1347 +
1348 + #첫번째 다이얼로그
1349 + def GoFirst(self) :
1350 + firstDialog = Dialog(self)
1351 + firstDialog.show()
1352 +
1353 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_ng\_ng1_1"))
1354 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
1355 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1356 + firstDialog.text_0.setText("담담 -> 서서히,<br> 좌측 하단으로 <br> 반원 그리기")
1357 +
1358 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_ng\_ng1_2"))
1359 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
1360 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1361 + firstDialog.text_1.setText("담담 -> 서서히,<br> 우측 하단으로 <br> 반원 그리기")
1362 +
1363 + #드론 연결
1364 + firstDialog.pButton_drone.clicked.connect(drone.Move_Ng_1)
1365 +
1366 +#ㅎ 다이얼로그
1367 +class Consonant_H_Dialog(QDialog):
1368 + def __init__(self, parent):
1369 + super(Consonant_H_Dialog,self).__init__(parent)
1370 + dialog_consonant_ui = 'ui\dialog_consonant.ui'
1371 + uic.loadUi(dialog_consonant_ui, self)
1372 +
1373 + self.show()
1374 + self.setWindowTitle('H Dialog')
1375 + self.ChangeButtonImage()
1376 + self.ConnectButton()
1377 + self.SetTextBrowser()
1378 +
1379 + #버튼 연결 @
1380 + def ConnectButton(self) :
1381 + self.pButton_0.clicked.connect(self.GoFirst)
1382 + self.pButton_1.clicked.connect(self.GoFirst)
1383 + self.pButton_2.clicked.connect(self.GoFirst)
1384 + self.pButton_3.clicked.connect(self.GoFirst)
1385 + self.pButton_4.clicked.connect(self.GoFirst)
1386 +
1387 + #버튼 이미지 변경 @
1388 + def ChangeButtonImage(self) :
1389 + self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
1390 + self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
1391 + self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
1392 + self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
1393 + self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
1394 +
1395 + #텍스트 변경
1396 + def SetTextBrowser(self) :
1397 + self.textBrowser.append("'ㅎ' 경우, 오직 하나의 형태로 나뉩니다.")
1398 + self.textBrowser.append("'ㅇ'과 다른 점은 경우, 두가지 획이 추가되는데,")
1399 + self.textBrowser.append("첫번 째 획은 강조되어 시작되고 담담히 끝나고 두번 째 획은 강조되어 시작되고 강조되어 마무리됩니다.<br>")
1400 +
1401 + self.textBrowser.append("'ㅎ'의 몸통은 'ㅇ'과 같이 총 2가지의 곡선으로 이루어지는데, ")
1402 + self.textBrowser.append("첫번째 곡선의 경우 좌측으로 가는 담담히 시작해 서서히 끝나는 곡선이고")
1403 + self.textBrowser.append("두번째 곡선의 경우 우측으로 가는 담담히 시작해 서서히 끝나는 곡선입니다.<br>")
1404 + self.textBrowser.append("추가적으로 'ㅎ'은 결합되는 모음 및 위치에 따라 적절히 가로,세로 비율을 조절해줍니다.<br>")
1405 +
1406 + #첫번째 다이얼로그
1407 + def GoFirst(self) :
1408 + firstDialog = Dialog(self)
1409 + firstDialog.show()
1410 + #첫번째 획
1411 + firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\h\h1_1"))
1412 + firstDialog.image_0.setStyleSheet("border: 1px solid black;")
1413 + firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
1414 + firstDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
1415 + #두번째 획
1416 + firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\h\h1_2"))
1417 + firstDialog.image_1.setStyleSheet("border: 1px solid black;")
1418 + firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
1419 + firstDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
1420 + #세번째 획
1421 + firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\h\h1_3"))
1422 + firstDialog.image_2.setStyleSheet("border: 1px solid black;")
1423 + firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
1424 + firstDialog.text_2.setText("담담 -> 서서히,<br> 좌측 하단으로 <br> 반원 그리기")
1425 + #네번째 획
1426 + firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\h\h1_4"))
1427 + firstDialog.image_3.setStyleSheet("border: 1px solid black;")
1428 + firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
1429 + firstDialog.text_3.setText("담담 -> 서서히,<br> 우측 하단으로 <br> 반원 그리기")
1430 +
1431 + #드론 연결
1432 + firstDialog.pButton_drone.clicked.connect(drone.Move_H_1)
1433 +
1434 +#'ㅇ' 파생 -end
1 +from time import sleep
2 +import CoDrone
3 +from CoDrone import Direction
4 +
5 +# 단순 이동
6 +#drone.go(Direction.RIGHT,3, 100) # 방향, 시간, 세기(백분율)
7 +#drone.go(Direction.LEFT,3, 100)
8 +#drone.go(Direction.UP,3, 100)
9 +#drone.go(Direction.DOWN,2, 100)
10 +
11 +# 단순 회전
12 +#drone.turn(Direction.LEFT, 2, 100)
13 +
14 +#복합 이동
15 +#drone.move(3,0,0,0,0) #args : 시간(초), roll(+:우측으로), pitch(+:앞으로), yaw(+:우회전), thorttle(+:상승)
16 +
17 +#획구성 기본 컨셉, 예시 : 서서히 시작해서 -> 담담하게 붓떼기
18 +#drone.move(1,100,0,0,100) # 붓 놓기, 마지막 인자는 양수일수록 획이 얇게 시작, 붓을 강조로 시작할때는 두번째 인자 약하게
19 +#drone.move(3,100,0,0,0) # 획 진행, 마지막 인자는 양수일수록 획이 두꺼움
20 +#drone.move(1,0,0,0,-50) # 붓 떼기, 마지막 인자는 음수일수록 강조됨
21 +
22 +#pratice 드론 함수 - start
23 +
24 +def Move_Right() :
25 + drone = CoDrone.CoDrone() #드론객체생성
26 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
27 +
28 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
29 + sleep(0.5)
30 +
31 + if drone.isConnected():
32 + drone.all_colors(255,0,0,100) # 빨강 (대기)
33 + sleep(2)
34 +
35 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
36 + drone.all_colors(0,0,255,100) # 파랑 (동작)
37 +
38 + drone.go(Direction.RIGHT,3, 100) # 방향, 시간, 세기(백분율)
39 +
40 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
41 + drone.emergency_stop() #모든 모터 즉시 종료
42 + drone.send_link_disconnect() #드론 연결 종료
43 + drone.close() #시리얼 포트를 닫습니다.
44 +
45 +def Move_Down() :
46 + drone = CoDrone.CoDrone() #드론객체생성
47 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
48 +
49 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
50 + sleep(0.5)
51 +
52 + if drone.isConnected():
53 + drone.all_colors(255,0,0,100) # 빨강 (대기)
54 + sleep(2)
55 +
56 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
57 + drone.all_colors(0,0,255,100) # 파랑 (동작)
58 +
59 + drone.go(Direction.DOWN,3, 100) # 방향, 시간, 세기(백분율)
60 +
61 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
62 + drone.emergency_stop() #모든 모터 즉시 종료
63 + drone.send_link_disconnect() #드론 연결 종료
64 + drone.close() #시리얼 포트를 닫습니다.
65 +
66 +def Move_DiagonalLeft() :
67 + drone = CoDrone.CoDrone() #드론객체생성
68 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
69 +
70 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
71 + sleep(0.5)
72 +
73 + if drone.isConnected():
74 + drone.all_colors(255,0,0,100) # 빨강 (대기)
75 + sleep(2)
76 +
77 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
78 + drone.all_colors(0,0,255,100) # 파랑 (동작)
79 + drone.move(3,-100,-100,0,0)
80 +
81 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
82 + drone.emergency_stop() #모든 모터 즉시 종료
83 + drone.send_link_disconnect() #드론 연결 종료
84 + drone.close() #시리얼 포트를 닫습니다.
85 +
86 +def Move_DiagonalRight() :
87 + drone = CoDrone.CoDrone() #드론객체생성
88 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
89 +
90 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
91 + sleep(0.5)
92 +
93 + if drone.isConnected():
94 + drone.all_colors(255,0,0,100) # 빨강 (대기)
95 + sleep(2)
96 +
97 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
98 + drone.all_colors(0,0,255,100) # 파랑 (동작)
99 + drone.move(3,100,-100,0,0)
100 +
101 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
102 + drone.emergency_stop() #모든 모터 즉시 종료
103 + drone.send_link_disconnect() #드론 연결 종료
104 + drone.close() #시리얼 포트를 닫습니다.
105 +
106 +def Move_CurveLeft() :
107 + drone = CoDrone.CoDrone() #드론객체생성
108 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
109 +
110 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
111 + sleep(0.5)
112 +
113 + if drone.isConnected():
114 + drone.all_colors(255,0,0,100) # 빨강 (대기)
115 + sleep(2)
116 +
117 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
118 + drone.all_colors(0,0,255,100) # 파랑 (동작)
119 + drone.move(3,0,-100,-100,0)
120 +
121 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
122 + drone.emergency_stop() #모든 모터 즉시 종료
123 + drone.send_link_disconnect() #드론 연결 종료
124 + drone.close() #시리얼 포트를 닫습니다.
125 +
126 +def Move_CurveRight() :
127 + drone = CoDrone.CoDrone() #드론객체생성
128 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
129 +
130 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
131 + sleep(0.5)
132 +
133 + if drone.isConnected():
134 + drone.all_colors(255,0,0,100) # 빨강 (대기)
135 + sleep(2)
136 +
137 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
138 + drone.all_colors(0,0,255,100) # 파랑 (동작)
139 + drone.move(3,0,-100,100,0)
140 +
141 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
142 + drone.emergency_stop() #모든 모터 즉시 종료
143 + drone.send_link_disconnect() #드론 연결 종료
144 + drone.close() #시리얼 포트를 닫습니다.
145 +
146 +#pratice 드론 함수 - end
147 +
148 +#stroke 드론 함수 - start
149 +
150 +def Move_SoftToMid() :
151 + drone = CoDrone.CoDrone() #드론객체생성
152 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
153 +
154 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
155 + sleep(0.5)
156 +
157 + if drone.isConnected():
158 + drone.all_colors(255,0,0,100) # 빨강 (대기)
159 + sleep(2)
160 +
161 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
162 + drone.all_colors(0,0,255,100) # 파랑 (동작)
163 +
164 + drone.move(1,100,0,0,100) # 붓 놓기, 마지막 인자는 양수일수록 획이 얇게 시작
165 + drone.move(3,100,0,0,0) # 획 진행, 마지막 인자는 양수일수록 획이 두꺼움
166 + drone.move(1,0,0,0,-50) # 붓 떼기, 마지막 인자는 음수일수록 강조됨
167 +
168 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
169 + drone.emergency_stop() #모든 모터 즉시 종료
170 + drone.send_link_disconnect() #드론 연결 종료
171 + drone.close() #시리얼 포트를 닫습니다.
172 +
173 +def Move_SoftToHard() :
174 + drone = CoDrone.CoDrone() #드론객체생성
175 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
176 +
177 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
178 + sleep(0.5)
179 +
180 + if drone.isConnected():
181 + drone.all_colors(255,0,0,100) # 빨강 (대기)
182 + sleep(2)
183 +
184 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
185 + drone.all_colors(0,0,255,100) # 파랑 (동작)
186 + drone.move(1,100,0,0,100)
187 + drone.move(3,100,0,0,-30)
188 + drone.move(1,0,0,0,-100)
189 +
190 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
191 + drone.emergency_stop() #모든 모터 즉시 종료
192 + drone.send_link_disconnect() #드론 연결 종료
193 + drone.close() #시리얼 포트를 닫습니다.
194 +
195 +def Move_MidToMid() :
196 + drone = CoDrone.CoDrone() #드론객체생성
197 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
198 +
199 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
200 + sleep(0.5)
201 +
202 + if drone.isConnected():
203 + drone.all_colors(255,0,0,100) # 빨강 (대기)
204 + sleep(2)
205 +
206 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
207 + drone.all_colors(0,0,255,100) # 파랑 (동작)
208 + drone.move(1,0,0,0,-50)
209 + drone.move(3,100,0,0,-100)
210 + drone.move(1,0,0,0,-50)
211 +
212 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
213 + drone.emergency_stop() #모든 모터 즉시 종료
214 + drone.send_link_disconnect() #드론 연결 종료
215 + drone.close() #시리얼 포트를 닫습니다.
216 +
217 +def Move_HardToSoft() :
218 + drone = CoDrone.CoDrone() #드론객체생성
219 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
220 +
221 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
222 + sleep(0.5)
223 +
224 + if drone.isConnected():
225 + drone.all_colors(255,0,0,100) # 빨강 (대기)
226 + sleep(2)
227 +
228 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
229 + drone.all_colors(0,0,255,100) # 파랑 (동작)
230 + drone.move(1,10,0,0,100)
231 + drone.move(3,100,0,0,0)
232 + drone.move(1,0,0,0,-100)
233 +
234 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
235 + drone.emergency_stop() #모든 모터 즉시 종료
236 + drone.send_link_disconnect() #드론 연결 종료
237 + drone.close() #시리얼 포트를 닫습니다.
238 +
239 +def Move_HardToMid() :
240 + drone = CoDrone.CoDrone() #드론객체생성
241 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
242 +
243 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
244 + sleep(0.5)
245 +
246 + if drone.isConnected():
247 + drone.all_colors(255,0,0,100) # 빨강 (대기)
248 + sleep(2)
249 +
250 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
251 + drone.all_colors(0,0,255,100) # 파랑 (동작)
252 + drone.move(1,10,0,0,-100)
253 + drone.move(3,100,0,0,0)
254 + drone.move(1,0,0,0,-50)
255 +
256 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
257 + drone.emergency_stop() #모든 모터 즉시 종료
258 + drone.send_link_disconnect() #드론 연결 종료
259 + drone.close() #시리얼 포트를 닫습니다.
260 +
261 +def Move_HardToHard() :
262 + drone = CoDrone.CoDrone() #드론객체생성
263 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
264 +
265 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
266 + sleep(0.5)
267 +
268 + if drone.isConnected():
269 + drone.all_colors(255,0,0,100) # 빨강 (대기)
270 + sleep(2)
271 +
272 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
273 + drone.all_colors(0,0,255,100) # 파랑 (동작)
274 + drone.move(1,10,0,0,-100)
275 + drone.move(3,100,0,0,0)
276 + drone.move(1,0,0,0,-100)
277 +
278 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
279 + drone.emergency_stop() #모든 모터 즉시 종료
280 + drone.send_link_disconnect() #드론 연결 종료
281 + drone.close() #시리얼 포트를 닫습니다.
282 +
283 +#stroke 드론 함수 - end
284 +
285 +#consonant 드론 함수 - start
286 +
287 +# 'ㄱ' 드론 함수
288 +def Move_G_1() :
289 + drone = CoDrone.CoDrone() #드론객체생성
290 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
291 +
292 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
293 + sleep(0.5)
294 +
295 + if drone.isConnected():
296 + drone.all_colors(255,0,0,100) # 빨강 (대기)
297 + sleep(2)
298 +
299 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
300 +
301 + drone.all_colors(0,0,255,100) # 파랑 (동작)
302 +
303 + drone.move(1,10,-5,50,-50)
304 + drone.move(1.5,40,-20,50,-100)
305 + drone.move(1.5,40,-20,50,-50)
306 + drone.move(1,0,0,50,-50)
307 +
308 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
309 + sleep(2)
310 +
311 + drone.all_colors(0,0,255,100) # 파랑 (동작)
312 + drone.move(1,-100,-50,0,-100)
313 + drone.move(3,-100,-50,0,50)
314 + drone.move(1,0,0,0,100)
315 +
316 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
317 + drone.emergency_stop() #모든 모터 즉시 종료
318 + drone.send_link_disconnect() #드론 연결 종료
319 + drone.close() #시리얼 포트를 닫습니다.
320 +
321 +def Move_G_2() :
322 + drone = CoDrone.CoDrone() #드론객체생성
323 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
324 +
325 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
326 + sleep(0.5)
327 +
328 + if drone.isConnected():
329 + drone.all_colors(255,0,0,100) # 빨강 (대기)
330 + sleep(2)
331 +
332 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
333 +
334 + drone.all_colors(0,0,255,100) # 파랑 (동작)
335 + drone.move(1,100,50,50,-100)
336 + drone.move(2,100,50,50,0)
337 + drone.move(1,100,-100,50,0)
338 + drone.move(1,0,0,50,-100)
339 +
340 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
341 + sleep(2)
342 +
343 + drone.all_colors(0,0,255,100) # 파랑 (동작)
344 + drone.move(1,-100,-100,0,-100)
345 + drone.move(3,-100,-100,0,50)
346 + drone.move(1,0,0,0,100)
347 +
348 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
349 + drone.emergency_stop() #모든 모터 즉시 종료
350 + drone.send_link_disconnect() #드론 연결 종료
351 + drone.close() #시리얼 포트를 닫습니다.
352 +
353 +def Move_G_3() :
354 + drone = CoDrone.CoDrone() #드론객체생성
355 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
356 +
357 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
358 + sleep(0.5)
359 +
360 + if drone.isConnected():
361 + drone.all_colors(255,0,0,100) # 빨강 (대기)
362 + sleep(2)
363 +
364 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
365 +
366 + drone.all_colors(0,0,255,100) # 파랑 (동작)
367 + drone.move(1,10,0,0,-100)
368 + drone.move(3,100,0,50,0)
369 + drone.move(1,0,0,50,-100)
370 +
371 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
372 + sleep(2)
373 +
374 + drone.all_colors(0,0,255,100) # 파랑 (동작)
375 + drone.move(1,0,-10,0,-100)
376 + drone.move(3,0,-100,0,0)
377 + drone.move(1,0,0,0,-100)
378 +
379 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
380 + drone.emergency_stop() #모든 모터 즉시 종료
381 + drone.send_link_disconnect() #드론 연결 종료
382 + drone.close() #시리얼 포트를 닫습니다.
383 +
384 +# 'ㅋ' 드론 함수
385 +def Move_K_1() :
386 + drone = CoDrone.CoDrone() #드론객체생성
387 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
388 +
389 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
390 + sleep(0.5)
391 +
392 + if drone.isConnected():
393 + drone.all_colors(255,0,0,100) # 빨강 (대기)
394 + sleep(2)
395 +
396 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
397 +
398 + drone.all_colors(0,0,255,100) # 파랑 (동작)
399 + drone.move(1,0,0,50,-50)
400 + drone.move(3,100,-50,50,0)
401 + drone.move(1,0,0,50,-50)
402 +
403 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
404 + sleep(2)
405 +
406 + drone.all_colors(0,0,255,100) # 파랑 (동작)
407 + drone.move(1,-100,-50,0,-100)
408 + drone.move(3,-100,-50,0,50)
409 + drone.move(1,0,0,0,100)
410 +
411 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
412 + sleep(2)
413 +
414 + drone.all_colors(0,0,255,100) # 파랑 (동작)
415 + drone.move(1,10,0,0,-100)
416 + drone.move(3,100,0,0,0)
417 + drone.move(1,0,0,0,-100)
418 +
419 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
420 + drone.emergency_stop() #모든 모터 즉시 종료
421 + drone.send_link_disconnect() #드론 연결 종료
422 + drone.close() #시리얼 포트를 닫습니다.
423 +
424 +def Move_K_2() :
425 + drone = CoDrone.CoDrone() #드론객체생성
426 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
427 +
428 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
429 + sleep(0.5)
430 +
431 + if drone.isConnected():
432 + drone.all_colors(255,0,0,100) # 빨강 (대기)
433 + sleep(2)
434 +
435 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
436 +
437 + drone.all_colors(0,0,255,100) # 파랑 (동작)
438 + drone.move(1,100,50,50,-100)
439 + drone.move(2,100,50,50,0)
440 + drone.move(1,100,-100,50,0)
441 + drone.move(1,0,0,50,-100)
442 +
443 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
444 + sleep(2)
445 +
446 + drone.all_colors(0,0,255,100) # 파랑 (동작)
447 + drone.move(1,-100,-100,0,-100)
448 + drone.move(3,-100,-100,0,50)
449 + drone.move(1,0,0,0,100)
450 +
451 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
452 + sleep(2)
453 +
454 + drone.all_colors(0,0,255,100) # 파랑 (동작)
455 + drone.move(1,10,0,0,-100)
456 + drone.move(3,100,0,0,0)
457 + drone.move(1,0,0,0,-100)
458 +
459 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
460 + drone.emergency_stop() #모든 모터 즉시 종료
461 + drone.send_link_disconnect() #드론 연결 종료
462 + drone.close() #시리얼 포트를 닫습니다.
463 +
464 +def Move_K_3() :
465 + drone = CoDrone.CoDrone() #드론객체생성
466 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
467 +
468 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
469 + sleep(0.5)
470 +
471 + if drone.isConnected():
472 + drone.all_colors(255,0,0,100) # 빨강 (대기)
473 + sleep(2)
474 +
475 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
476 +
477 + drone.all_colors(0,0,255,100) # 파랑 (동작)
478 + drone.move(1,10,0,0,-100)
479 + drone.move(3,100,0,50,0)
480 + drone.move(1,0,0,50,-100)
481 +
482 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
483 + sleep(2)
484 +
485 + drone.all_colors(0,0,255,100) # 파랑 (동작)
486 + drone.move(1,0,-10,0,-100)
487 + drone.move(3,0,-100,0,0)
488 + drone.move(1,0,0,0,-100)
489 +
490 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
491 + sleep(2)
492 +
493 + drone.all_colors(0,0,255,100) # 파랑 (동작)
494 + drone.move(1,10,0,0,-100)
495 + drone.move(3,100,0,0,0)
496 + drone.move(1,0,0,0,-100)
497 +
498 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
499 + drone.emergency_stop() #모든 모터 즉시 종료
500 + drone.send_link_disconnect() #드론 연결 종료
501 + drone.close() #시리얼 포트를 닫습니다.
502 +
503 +# 'ㄴ' 드론 함수
504 +def Move_N_1() :
505 + drone = CoDrone.CoDrone() #드론객체생성
506 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
507 +
508 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
509 + sleep(0.5)
510 +
511 + if drone.isConnected():
512 + drone.all_colors(255,0,0,100) # 빨강 (대기)
513 + sleep(2)
514 +
515 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
516 +
517 + drone.all_colors(0,0,255,100) # 파랑 (동작)
518 + drone.move(1,0,-100,0,-100)
519 + drone.move(3,0,-100,0,0)
520 + drone.move(1,0,0,0,100)
521 +
522 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
523 + sleep(2)
524 +
525 + drone.all_colors(0,0,255,100) # 파랑 (동작)
526 + drone.move(1,10,0,0,-100)
527 + drone.move(3,100,-10,0,50)
528 + drone.move(1,0,0,0,100)
529 +
530 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
531 + drone.emergency_stop() #모든 모터 즉시 종료
532 + drone.send_link_disconnect() #드론 연결 종료
533 + drone.close() #시리얼 포트를 닫습니다.
534 +
535 +def Move_N_2() :
536 + drone = CoDrone.CoDrone() #드론객체생성
537 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
538 +
539 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
540 + sleep(0.5)
541 +
542 + if drone.isConnected():
543 + drone.all_colors(255,0,0,100) # 빨강 (대기)
544 + sleep(2)
545 +
546 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
547 +
548 + drone.all_colors(0,0,255,100) # 파랑 (동작)
549 + drone.move(1,0,-100,0,-100)
550 + drone.move(3,0,-100,0,0)
551 + drone.move(1,0,0,0,100)
552 +
553 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
554 + sleep(2)
555 +
556 + drone.all_colors(0,0,255,100) # 파랑 (동작)
557 + drone.move(1,10,0,0,-100)
558 + drone.move(3,100,-10,0,0)
559 + drone.move(1,0,0,0,-50)
560 +
561 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
562 + drone.emergency_stop() #모든 모터 즉시 종료
563 + drone.send_link_disconnect() #드론 연결 종료
564 + drone.close() #시리얼 포트를 닫습니다.
565 +
566 +def Move_N_3() :
567 + drone = CoDrone.CoDrone() #드론객체생성
568 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
569 +
570 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
571 + sleep(0.5)
572 +
573 + if drone.isConnected():
574 + drone.all_colors(255,0,0,100) # 빨강 (대기)
575 + sleep(2)
576 +
577 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
578 +
579 + drone.all_colors(0,0,255,100) # 파랑 (동작)
580 + drone.move(1,0,-100,0,-100)
581 + drone.move(3,0,-100,0,0)
582 + drone.move(1,0,0,0,100)
583 +
584 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
585 + sleep(2)
586 +
587 + drone.all_colors(0,0,255,100) # 파랑 (동작)
588 + drone.move(1,10,0,0,-100)
589 + drone.move(3,100,-10,0,0)
590 + drone.move(1,0,0,0,-100)
591 +
592 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
593 + drone.emergency_stop() #모든 모터 즉시 종료
594 + drone.send_link_disconnect() #드론 연결 종료
595 + drone.close() #시리얼 포트를 닫습니다.
596 +
597 +# 'ㄷ' 드론 함수
598 +def Move_D_1() :
599 + drone = CoDrone.CoDrone() #드론객체생성
600 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
601 +
602 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
603 + sleep(0.5)
604 +
605 + if drone.isConnected():
606 + drone.all_colors(255,0,0,100) # 빨강 (대기)
607 + sleep(2)
608 +
609 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
610 +
611 + drone.all_colors(0,0,255,100) # 파랑 (동작)
612 + drone.move(1,10,0,0,-100)
613 + drone.move(3,100,0,0,0)
614 + drone.move(1,0,0,0,-100)
615 +
616 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
617 + sleep(2)
618 +
619 + drone.all_colors(0,0,255,100) # 파랑 (동작)
620 + drone.move(1,0,-100,0,-100)
621 + drone.move(3,0,-100,0,0)
622 + drone.move(1,0,0,0,100)
623 +
624 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
625 + sleep(2)
626 +
627 + drone.all_colors(0,0,255,100) # 파랑 (동작)
628 + drone.move(1,10,0,0,-100)
629 + drone.move(3,100,-10,0,50)
630 + drone.move(1,0,0,0,100)
631 +
632 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
633 + drone.emergency_stop() #모든 모터 즉시 종료
634 + drone.send_link_disconnect() #드론 연결 종료
635 + drone.close() #시리얼 포트를 닫습니다.
636 +
637 +def Move_D_2() :
638 + drone = CoDrone.CoDrone() #드론객체생성
639 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
640 +
641 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
642 + sleep(0.5)
643 +
644 + if drone.isConnected():
645 + drone.all_colors(255,0,0,100) # 빨강 (대기)
646 + sleep(2)
647 +
648 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
649 +
650 + drone.all_colors(0,0,255,100) # 파랑 (동작)
651 + drone.move(1,10,0,0,-100)
652 + drone.move(3,100,0,0,0)
653 + drone.move(1,0,0,0,-100)
654 +
655 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
656 + sleep(2)
657 +
658 + drone.all_colors(0,0,255,100) # 파랑 (동작)
659 + drone.move(1,0,-100,0,-100)
660 + drone.move(3,0,-100,0,0)
661 + drone.move(1,0,0,0,100)
662 +
663 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
664 + sleep(2)
665 +
666 + drone.all_colors(0,0,255,100) # 파랑 (동작)
667 + drone.move(1,10,0,0,-100)
668 + drone.move(3,100,-10,0,0)
669 + drone.move(1,0,0,0,-50)
670 +
671 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
672 + drone.emergency_stop() #모든 모터 즉시 종료
673 + drone.send_link_disconnect() #드론 연결 종료
674 + drone.close() #시리얼 포트를 닫습니다.
675 +
676 +def Move_D_3() :
677 + drone = CoDrone.CoDrone() #드론객체생성
678 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
679 +
680 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
681 + sleep(0.5)
682 +
683 + if drone.isConnected():
684 + drone.all_colors(255,0,0,100) # 빨강 (대기)
685 + sleep(2)
686 +
687 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
688 +
689 + drone.all_colors(0,0,255,100) # 파랑 (동작)
690 + drone.move(1,10,0,0,-100)
691 + drone.move(3,100,0,0,0)
692 + drone.move(1,0,0,0,-100)
693 +
694 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
695 + sleep(2)
696 +
697 + drone.all_colors(0,0,255,100) # 파랑 (동작)
698 + drone.move(1,0,-100,0,-100)
699 + drone.move(3,0,-100,0,0)
700 + drone.move(1,0,0,0,100)
701 +
702 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
703 + sleep(2)
704 +
705 + drone.all_colors(0,0,255,100) # 파랑 (동작)
706 + drone.move(1,10,0,0,-100)
707 + drone.move(3,100,-10,0,0)
708 + drone.move(1,0,0,0,-100)
709 +
710 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
711 + drone.emergency_stop() #모든 모터 즉시 종료
712 + drone.send_link_disconnect() #드론 연결 종료
713 + drone.close() #시리얼 포트를 닫습니다.
714 +
715 +# 'ㅌ' 드론 함수
716 +def Move_T_1() :
717 + drone = CoDrone.CoDrone() #드론객체생성
718 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
719 +
720 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
721 + sleep(0.5)
722 +
723 + if drone.isConnected():
724 + drone.all_colors(255,0,0,100) # 빨강 (대기)
725 + sleep(2)
726 +
727 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
728 +
729 + drone.all_colors(0,0,255,100) # 파랑 (동작)
730 + drone.move(1,10,0,0,-100)
731 + drone.move(3,100,0,0,0)
732 + drone.move(1,0,0,0,-100)
733 +
734 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
735 + sleep(2)
736 +
737 + drone.all_colors(0,0,255,100) # 파랑 (동작)
738 + drone.move(1,10,0,0,-100)
739 + drone.move(3,100,0,0,0)
740 + drone.move(1,0,0,0,-100)
741 +
742 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
743 + sleep(2)
744 +
745 + drone.all_colors(0,0,255,100) # 파랑 (동작)
746 + drone.move(1,0,-100,0,-100)
747 + drone.move(3,0,-100,0,0)
748 + drone.move(1,0,0,0,100)
749 +
750 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
751 + sleep(2)
752 +
753 + drone.all_colors(0,0,255,100) # 파랑 (동작)
754 + drone.move(1,10,0,0,-100)
755 + drone.move(3,100,-10,0,50)
756 + drone.move(1,0,0,0,100)
757 +
758 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
759 + drone.emergency_stop() #모든 모터 즉시 종료
760 + drone.send_link_disconnect() #드론 연결 종료
761 + drone.close() #시리얼 포트를 닫습니다.
762 +
763 +def Move_T_2() :
764 + drone = CoDrone.CoDrone() #드론객체생성
765 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
766 +
767 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
768 + sleep(0.5)
769 +
770 + if drone.isConnected():
771 + drone.all_colors(255,0,0,100) # 빨강 (대기)
772 + sleep(2)
773 +
774 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
775 +
776 + drone.all_colors(0,0,255,100) # 파랑 (동작)
777 + drone.move(1,10,0,0,-100)
778 + drone.move(3,100,0,0,0)
779 + drone.move(1,0,0,0,-100)
780 +
781 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
782 + sleep(2)
783 + drone.all_colors(0,0,255,100) # 파랑 (동작)
784 + drone.move(1,10,0,0,-100)
785 + drone.move(3,100,0,0,0)
786 + drone.move(1,0,0,0,-100)
787 +
788 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
789 + sleep(2)
790 +
791 + drone.all_colors(0,0,255,100) # 파랑 (동작)
792 + drone.move(1,0,-100,0,-100)
793 + drone.move(3,0,-100,0,0)
794 + drone.move(1,0,0,0,100)
795 +
796 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
797 + sleep(2)
798 +
799 + drone.all_colors(0,0,255,100) # 파랑 (동작)
800 + drone.move(1,10,0,0,-100)
801 + drone.move(3,100,-10,0,0)
802 + drone.move(1,0,0,0,-50)
803 +
804 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
805 + drone.emergency_stop() #모든 모터 즉시 종료
806 + drone.send_link_disconnect() #드론 연결 종료
807 + drone.close() #시리얼 포트를 닫습니다.
808 +
809 +def Move_T_3() :
810 + drone = CoDrone.CoDrone() #드론객체생성
811 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
812 +
813 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
814 + sleep(0.5)
815 +
816 + if drone.isConnected():
817 + drone.all_colors(255,0,0,100) # 빨강 (대기)
818 + sleep(2)
819 +
820 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
821 +
822 + drone.all_colors(0,0,255,100) # 파랑 (동작)
823 + drone.move(1,10,0,0,-100)
824 + drone.move(3,100,0,0,0)
825 + drone.move(1,0,0,0,-100)
826 +
827 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
828 + sleep(2)
829 +
830 + drone.all_colors(0,0,255,100) # 파랑 (동작)
831 + drone.move(1,10,0,0,-100)
832 + drone.move(3,100,0,0,0)
833 + drone.move(1,0,0,0,-100)
834 +
835 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
836 + sleep(2)
837 +
838 + drone.all_colors(0,0,255,100) # 파랑 (동작)
839 + drone.move(1,0,-100,0,-100)
840 + drone.move(3,0,-100,0,0)
841 + drone.move(1,0,0,0,100)
842 +
843 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
844 + sleep(2)
845 +
846 + drone.all_colors(0,0,255,100) # 파랑 (동작)
847 + drone.move(1,10,0,0,-100)
848 + drone.move(3,100,-10,0,0)
849 + drone.move(1,0,0,0,-100)
850 +
851 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
852 + drone.emergency_stop() #모든 모터 즉시 종료
853 + drone.send_link_disconnect() #드론 연결 종료
854 + drone.close() #시리얼 포트를 닫습니다.
855 +
856 +# 'ㄹ' 드론 함수
857 +def Move_L_1() :
858 + drone = CoDrone.CoDrone() #드론객체생성
859 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
860 +
861 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
862 + sleep(0.5)
863 +
864 + if drone.isConnected():
865 + drone.all_colors(255,0,0,100) # 빨강 (대기)
866 + sleep(2)
867 +
868 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
869 +
870 + drone.all_colors(0,0,255,100) # 파랑 (동작)
871 + drone.move(1,10,0,0,-100)
872 + drone.move(3,100,0,0,0)
873 + drone.move(1,0,0,0,-100)
874 +
875 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
876 + sleep(2)
877 +
878 + drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
879 + drone.move(1,0,-10,0,-100)
880 + drone.move(3,0,-100,0,0)
881 + drone.move(1,0,0,0,100)
882 +
883 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
884 + sleep(2)
885 +
886 + drone.all_colors(0,0,255,100) # 파랑 (동작)
887 + drone.move(1,10,0,0,-100)
888 + drone.move(3,100,0,0,0)
889 + drone.move(1,0,0,0,-100)
890 +
891 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
892 + sleep(2)
893 +
894 + drone.all_colors(0,0,255,100) # 파랑 (동작)
895 + drone.move(1,0,-100,0,-100)
896 + drone.move(3,0,-100,0,0)
897 + drone.move(1,0,0,0,100)
898 +
899 + drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯 번째 획 버퍼
900 + sleep(2)
901 +
902 + drone.all_colors(0,0,255,100) # 파랑 (동작)
903 + drone.move(1,10,0,0,-100)
904 + drone.move(3,100,-10,0,50)
905 + drone.move(1,0,0,0,100)
906 +
907 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
908 + drone.emergency_stop() #모든 모터 즉시 종료
909 + drone.send_link_disconnect() #드론 연결 종료
910 + drone.close() #시리얼 포트를 닫습니다.
911 +
912 +def Move_L_2() :
913 + drone = CoDrone.CoDrone() #드론객체생성
914 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
915 +
916 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
917 + sleep(0.5)
918 +
919 + if drone.isConnected():
920 + drone.all_colors(255,0,0,100) # 빨강 (대기)
921 + sleep(2)
922 +
923 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
924 +
925 + drone.all_colors(0,0,255,100) # 파랑 (동작)
926 + drone.move(1,10,0,0,-100)
927 + drone.move(3,100,0,0,0)
928 + drone.move(1,0,0,0,-100)
929 +
930 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
931 + sleep(2)
932 +
933 + drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
934 + drone.move(1,0,-10,0,-100)
935 + drone.move(3,0,-100,0,0)
936 + drone.move(1,0,0,0,100)
937 +
938 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
939 + sleep(2)
940 +
941 + drone.all_colors(0,0,255,100) # 파랑 (동작)
942 + drone.move(1,10,0,0,-100)
943 + drone.move(3,100,0,0,0)
944 + drone.move(1,0,0,0,-100)
945 +
946 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
947 + sleep(2)
948 +
949 + drone.all_colors(0,0,255,100) # 파랑 (동작)
950 + drone.move(1,0,-100,0,-100)
951 + drone.move(3,0,-100,0,0)
952 + drone.move(1,0,0,0,100)
953 +
954 + drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯번째 획 버퍼
955 + sleep(2)
956 +
957 + drone.all_colors(0,0,255,100) # 파랑 (동작)
958 + drone.move(1,10,0,0,-100)
959 + drone.move(3,100,-10,0,0)
960 + drone.move(1,0,0,0,-50)
961 +
962 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
963 + drone.emergency_stop() #모든 모터 즉시 종료
964 + drone.send_link_disconnect() #드론 연결 종료
965 + drone.close() #시리얼 포트를 닫습니다.
966 +
967 +def Move_L_3() :
968 + drone = CoDrone.CoDrone() #드론객체생성
969 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
970 +
971 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
972 + sleep(0.5)
973 +
974 + if drone.isConnected():
975 + drone.all_colors(255,0,0,100) # 빨강 (대기)
976 + sleep(2)
977 +
978 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
979 +
980 + drone.all_colors(0,0,255,100) # 파랑 (동작)
981 + drone.move(1,10,0,0,-100)
982 + drone.move(3,100,0,0,0)
983 + drone.move(1,0,0,0,-100)
984 +
985 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
986 + sleep(2)
987 +
988 + drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
989 + drone.move(1,0,-10,0,-100)
990 + drone.move(3,0,-100,0,0)
991 + drone.move(1,0,0,0,100)
992 +
993 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
994 + sleep(2)
995 +
996 + drone.all_colors(0,0,255,100) # 파랑 (동작)
997 + drone.move(1,10,0,0,-100)
998 + drone.move(3,100,0,0,0)
999 + drone.move(1,0,0,0,-100)
1000 +
1001 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
1002 + sleep(2)
1003 +
1004 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1005 + drone.move(1,0,-100,0,-100)
1006 + drone.move(3,0,-100,0,0)
1007 + drone.move(1,0,0,0,100)
1008 +
1009 + drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯 번째 획 버퍼
1010 + sleep(2)
1011 +
1012 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1013 + drone.move(1,10,0,0,-100)
1014 + drone.move(3,100,-10,0,0)
1015 + drone.move(1,0,0,0,-100)
1016 +
1017 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1018 + drone.emergency_stop() #모든 모터 즉시 종료
1019 + drone.send_link_disconnect() #드론 연결 종료
1020 + drone.close() #시리얼 포트를 닫습니다.
1021 +
1022 +# 'ㅁ' 드론 함수
1023 +def Move_M_1() :
1024 + drone = CoDrone.CoDrone() #드론객체생성
1025 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1026 +
1027 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1028 + sleep(0.5)
1029 +
1030 + if drone.isConnected():
1031 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1032 + sleep(2)
1033 +
1034 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1035 +
1036 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1037 + drone.move(1,0,-10,0,-100)
1038 + drone.move(3,0,-100,0,0)
1039 + drone.move(1,0,0,0,100)
1040 +
1041 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1042 + sleep(2)
1043 +
1044 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1045 + drone.move(1,10,0,0,-100)
1046 + drone.move(3,100,0,0,0)
1047 + drone.move(1,0,0,0,100)
1048 +
1049 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1050 + sleep(2)
1051 +
1052 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1053 + drone.move(1,0,-10,0,-100)
1054 + drone.move(3,0,-100,0,0)
1055 + drone.move(1,0,0,0,100)
1056 +
1057 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
1058 + sleep(2)
1059 +
1060 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1061 + drone.move(1,100,0,0,100)
1062 + drone.move(3,100,0,0,0)
1063 + drone.move(1,0,0,0,-50)
1064 +
1065 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1066 + drone.emergency_stop() #모든 모터 즉시 종료
1067 + drone.send_link_disconnect() #드론 연결 종료
1068 + drone.close() #시리얼 포트를 닫습니다.
1069 +
1070 +# 'ㅂ' 드론 함수
1071 +def Move_B_1() :
1072 + drone = CoDrone.CoDrone() #드론객체생성
1073 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1074 +
1075 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1076 + sleep(0.5)
1077 +
1078 + if drone.isConnected():
1079 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1080 + sleep(2)
1081 +
1082 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1083 +
1084 + drone.all_colors(0,0,255,100) # 파랑 (동작) 첫번째 세로획
1085 + drone.move(1,0,-10,0,-100)
1086 + drone.move(3,0,-100,0,0)
1087 + drone.move(1,0,0,0,100)
1088 +
1089 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1090 + sleep(2)
1091 +
1092 + drone.all_colors(0,0,255,100) # 파랑 (동작) 두번째 세로획
1093 + drone.move(1,0,-10,0,-100)
1094 + drone.move(3,0,-100,0,0)
1095 + drone.move(1,0,0,0,100)
1096 +
1097 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1098 + sleep(2)
1099 +
1100 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1101 + drone.move(1,100,0,0,100)
1102 + drone.move(3,100,0,0,0)
1103 + drone.move(1,0,0,0,-100)
1104 +
1105 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
1106 + sleep(2)
1107 +
1108 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1109 + drone.move(1,100,0,0,100)
1110 + drone.move(3,100,0,0,0)
1111 + drone.move(1,0,0,0,-50)
1112 +
1113 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1114 + drone.emergency_stop() #모든 모터 즉시 종료
1115 + drone.send_link_disconnect() #드론 연결 종료
1116 + drone.close() #시리얼 포트를 닫습니다.
1117 +
1118 +# 'ㅍ' 드론 함수
1119 +def Move_P_1() :
1120 + drone = CoDrone.CoDrone() #드론객체생성
1121 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1122 +
1123 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1124 + sleep(0.5)
1125 +
1126 + if drone.isConnected():
1127 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1128 + sleep(2)
1129 +
1130 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1131 +
1132 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1133 + drone.move(1,10,0,0,-100)
1134 + drone.move(3,100,0,0,0)
1135 + drone.move(1,0,0,0,-100)
1136 +
1137 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1138 + sleep(2)
1139 +
1140 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1141 + drone.move(1,0,-10,0,-100)
1142 + drone.move(2,0,-100,0,0)
1143 + drone.move(1,0,0,0,100)
1144 +
1145 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1146 + sleep(2)
1147 +
1148 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1149 + drone.move(1,0,-10,0,-100)
1150 + drone.move(3,0,-100,0,0)
1151 + drone.move(1,0,0,0,100)
1152 +
1153 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
1154 + sleep(2)
1155 +
1156 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1157 + drone.move(1,10,0,0,-100)
1158 + drone.move(3,100,0,0,0)
1159 + drone.move(1,0,0,0,100)
1160 +
1161 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1162 + drone.emergency_stop() #모든 모터 즉시 종료
1163 + drone.send_link_disconnect() #드론 연결 종료
1164 + drone.close() #시리얼 포트를 닫습니다.
1165 +
1166 +def Move_P_2() :
1167 + drone = CoDrone.CoDrone() #드론객체생성
1168 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1169 +
1170 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1171 + sleep(0.5)
1172 +
1173 + if drone.isConnected():
1174 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1175 + sleep(2)
1176 +
1177 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1178 +
1179 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1180 + drone.move(1,10,0,0,-100)
1181 + drone.move(3,100,0,0,0)
1182 + drone.move(1,0,0,0,-100)
1183 +
1184 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1185 + sleep(2)
1186 +
1187 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1188 + drone.move(1,0,-10,0,-100)
1189 + drone.move(2,0,-100,0,0)
1190 + drone.move(1,0,0,0,100)
1191 +
1192 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1193 + sleep(2)
1194 +
1195 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1196 + drone.move(1,0,-10,0,-100)
1197 + drone.move(3,0,-100,0,0)
1198 + drone.move(1,0,0,0,100)
1199 +
1200 + drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
1201 + sleep(2)
1202 +
1203 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1204 + drone.move(1,10,0,0,-100)
1205 + drone.move(3,100,0,0,0)
1206 + drone.move(1,0,0,0,-100)
1207 +
1208 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1209 + drone.emergency_stop() #모든 모터 즉시 종료
1210 + drone.send_link_disconnect() #드론 연결 종료
1211 + drone.close() #시리얼 포트를 닫습니다.
1212 +
1213 +# 'ㅅ' 드론 함수
1214 +def Move_S_1() :
1215 + drone = CoDrone.CoDrone() #드론객체생성
1216 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1217 +
1218 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1219 + sleep(0.5)
1220 +
1221 + if drone.isConnected():
1222 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1223 + sleep(2)
1224 +
1225 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1226 +
1227 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1228 + drone.move(1,-10,-10,0,-100)
1229 + drone.move(3,-100,-100,0,0)
1230 + drone.move(1,0,0,0,100)
1231 +
1232 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1233 + sleep(2)
1234 +
1235 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1236 + drone.move(1,10,-10,0,100)
1237 + drone.move(2,100,-100,0,0)
1238 + drone.move(1,0,0,0,-100)
1239 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1240 + drone.emergency_stop() #모든 모터 즉시 종료
1241 + drone.send_link_disconnect() #드론 연결 종료
1242 + drone.close() #시리얼 포트를 닫습니다.
1243 +
1244 +def Move_S_2() :
1245 + drone = CoDrone.CoDrone() #드론객체생성
1246 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1247 +
1248 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1249 + sleep(0.5)
1250 +
1251 + if drone.isConnected():
1252 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1253 + sleep(2)
1254 +
1255 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1256 +
1257 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1258 + drone.move(1,-10,-10,0,-100)
1259 + drone.move(3,-100,-100,0,0)
1260 + drone.move(1,0,0,0,100)
1261 +
1262 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1263 + sleep(2)
1264 +
1265 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1266 + drone.move(1,0,-10,0,-100)
1267 + drone.move(2,0,-100,0,0)
1268 + drone.move(1,0,0,0,100)
1269 +
1270 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1271 + drone.emergency_stop() #모든 모터 즉시 종료
1272 + drone.send_link_disconnect() #드론 연결 종료
1273 + drone.close() #시리얼 포트를 닫습니다.
1274 +
1275 +def Move_S_3() :
1276 + drone = CoDrone.CoDrone() #드론객체생성
1277 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1278 +
1279 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1280 + sleep(0.5)
1281 +
1282 + if drone.isConnected():
1283 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1284 + sleep(2)
1285 +
1286 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1287 +
1288 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1289 + drone.move(1,-10,-5,0,-100)
1290 + drone.move(3,-100,-50,0,0)
1291 + drone.move(1,0,0,0,100)
1292 +
1293 + drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
1294 + sleep(2)
1295 +
1296 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1297 + drone.move(1,10,-5,0,100)
1298 + drone.move(2,100,-50,0,0)
1299 + drone.move(1,0,0,0,-50)
1300 +
1301 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1302 + drone.emergency_stop() #모든 모터 즉시 종료
1303 + drone.send_link_disconnect() #드론 연결 종료
1304 + drone.close() #시리얼 포트를 닫습니다.
1305 +
1306 +# 'ㅈ' 드론 함수
1307 +def Move_J_1() :
1308 + drone = CoDrone.CoDrone() #드론객체생성
1309 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1310 +
1311 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1312 + sleep(0.5)
1313 +
1314 + if drone.isConnected():
1315 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1316 + sleep(2)
1317 +
1318 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1319 +
1320 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1321 + drone.move(1,10,0,0,-100)
1322 + drone.move(3,100,0,0,0)
1323 + drone.move(1,0,0,0,-100)
1324 +
1325 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1326 + sleep(2)
1327 +
1328 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1329 + drone.move(1,-10,-10,0,-100)
1330 + drone.move(3,-100,-100,0,0)
1331 + drone.move(1,0,0,0,100)
1332 +
1333 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1334 + sleep(2)
1335 +
1336 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1337 + drone.move(1,10,-10,0,100)
1338 + drone.move(2,100,-100,0,0)
1339 + drone.move(1,0,0,0,-100)
1340 +
1341 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1342 + drone.emergency_stop() #모든 모터 즉시 종료
1343 + drone.send_link_disconnect() #드론 연결 종료
1344 + drone.close() #시리얼 포트를 닫습니다.
1345 +
1346 +def Move_J_2() :
1347 + drone = CoDrone.CoDrone() #드론객체생성
1348 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1349 +
1350 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1351 + sleep(0.5)
1352 +
1353 + if drone.isConnected():
1354 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1355 + sleep(2)
1356 +
1357 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1358 +
1359 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1360 + drone.move(1,10,0,0,-100)
1361 + drone.move(3,100,0,0,0)
1362 + drone.move(1,0,0,0,-100)
1363 +
1364 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1365 + sleep(2)
1366 +
1367 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1368 + drone.move(1,-10,-10,0,-100)
1369 + drone.move(3,-100,-100,0,0)
1370 + drone.move(1,0,0,0,100)
1371 +
1372 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1373 + sleep(2)
1374 +
1375 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1376 + drone.move(1,0,-10,0,-100)
1377 + drone.move(2,0,-100,0,0)
1378 + drone.move(1,0,0,0,100)
1379 +
1380 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1381 + drone.emergency_stop() #모든 모터 즉시 종료
1382 + drone.send_link_disconnect() #드론 연결 종료
1383 + drone.close() #시리얼 포트를 닫습니다.
1384 +
1385 +def Move_J_3() :
1386 + drone = CoDrone.CoDrone() #드론객체생성
1387 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1388 +
1389 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1390 + sleep(0.5)
1391 +
1392 + if drone.isConnected():
1393 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1394 + sleep(2)
1395 +
1396 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1397 +
1398 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1399 + drone.move(1,10,0,0,-100)
1400 + drone.move(3,100,0,0,0)
1401 + drone.move(1,0,0,0,-100)
1402 +
1403 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1404 + sleep(2)
1405 +
1406 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1407 + drone.move(1,-10,-5,0,-100)
1408 + drone.move(3,-100,-50,0,0)
1409 + drone.move(1,0,0,0,100)
1410 +
1411 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1412 + sleep(2)
1413 +
1414 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1415 + drone.move(1,10,-5,0,100)
1416 + drone.move(2,100,-50,0,0)
1417 + drone.move(1,0,0,0,-50)
1418 +
1419 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1420 + drone.emergency_stop() #모든 모터 즉시 종료
1421 + drone.send_link_disconnect() #드론 연결 종료
1422 + drone.close() #시리얼 포트를 닫습니다.
1423 +
1424 +# 'ㅊ' 드론 함수
1425 +def Move_Ch_1() :
1426 + drone = CoDrone.CoDrone() #드론객체생성
1427 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1428 +
1429 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1430 + sleep(0.5)
1431 +
1432 + if drone.isConnected():
1433 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1434 + sleep(2)
1435 +
1436 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1437 +
1438 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1439 + drone.move(1,10,0,0,-100)
1440 + drone.move(3,100,0,0,0)
1441 + drone.move(1,0,0,0,-50)
1442 +
1443 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1444 + sleep(2)
1445 +
1446 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1447 + drone.move(1,10,0,0,-100)
1448 + drone.move(3,100,0,0,0)
1449 + drone.move(1,0,0,0,-100)
1450 +
1451 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1452 + sleep(2)
1453 +
1454 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1455 + drone.move(1,-10,-10,0,-100)
1456 + drone.move(3,-100,-100,0,0)
1457 + drone.move(1,0,0,0,100)
1458 +
1459 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1460 + sleep(2)
1461 +
1462 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1463 + drone.move(1,10,-10,0,100)
1464 + drone.move(2,100,-100,0,0)
1465 + drone.move(1,0,0,0,-100)
1466 +
1467 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1468 + drone.emergency_stop() #모든 모터 즉시 종료
1469 + drone.send_link_disconnect() #드론 연결 종료
1470 + drone.close() #시리얼 포트를 닫습니다.
1471 +
1472 +def Move_Ch_2() :
1473 + drone = CoDrone.CoDrone() #드론객체생성
1474 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1475 +
1476 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1477 + sleep(0.5)
1478 +
1479 + if drone.isConnected():
1480 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1481 + sleep(2)
1482 +
1483 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1484 +
1485 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1486 + drone.move(1,10,0,0,-100)
1487 + drone.move(3,100,0,0,0)
1488 + drone.move(1,0,0,0,-50)
1489 +
1490 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1491 + sleep(2)
1492 +
1493 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1494 + drone.move(1,10,0,0,-100)
1495 + drone.move(3,100,0,0,0)
1496 + drone.move(1,0,0,0,-100)
1497 +
1498 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1499 + sleep(2)
1500 +
1501 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1502 + drone.move(1,-10,-10,0,-100)
1503 + drone.move(3,-100,-100,0,0)
1504 + drone.move(1,0,0,0,100)
1505 +
1506 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1507 + sleep(2)
1508 +
1509 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1510 + drone.move(1,0,-10,0,-100)
1511 + drone.move(2,0,-100,0,0)
1512 + drone.move(1,0,0,0,100)
1513 +
1514 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1515 + drone.emergency_stop() #모든 모터 즉시 종료
1516 + drone.send_link_disconnect() #드론 연결 종료
1517 + drone.close() #시리얼 포트를 닫습니다.
1518 +
1519 +def Move_Ch_3() :
1520 + drone = CoDrone.CoDrone() #드론객체생성
1521 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1522 +
1523 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1524 + sleep(0.5)
1525 +
1526 + if drone.isConnected():
1527 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1528 + sleep(2)
1529 +
1530 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1531 +
1532 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1533 + drone.move(1,10,0,0,-100)
1534 + drone.move(3,100,0,0,0)
1535 + drone.move(1,0,0,0,-50)
1536 +
1537 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1538 + sleep(2)
1539 +
1540 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1541 + drone.move(1,10,0,0,-100)
1542 + drone.move(3,100,0,0,0)
1543 + drone.move(1,0,0,0,-100)
1544 +
1545 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1546 + sleep(2)
1547 +
1548 + drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
1549 + drone.move(1,-10,-5,0,-100)
1550 + drone.move(3,-100,-50,0,0)
1551 + drone.move(1,0,0,0,100)
1552 +
1553 + drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
1554 + sleep(2)
1555 +
1556 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1557 + drone.move(1,10,-5,0,100)
1558 + drone.move(2,100,-50,0,0)
1559 + drone.move(1,0,0,0,-50)
1560 +
1561 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1562 + drone.emergency_stop() #모든 모터 즉시 종료
1563 + drone.send_link_disconnect() #드론 연결 종료
1564 + drone.close() #시리얼 포트를 닫습니다.
1565 +
1566 +# 'ㅇ' 드론 함수
1567 +def Move_Ng_1() :
1568 + drone = CoDrone.CoDrone() #드론객체생성
1569 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1570 +
1571 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1572 + sleep(0.5)
1573 +
1574 + if drone.isConnected():
1575 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1576 + sleep(2)
1577 +
1578 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1579 +
1580 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1581 + drone.move(1,-100,0,50,-50)
1582 + drone.move(3,-100,0,100,0)
1583 + drone.move(1,0,0,0,100)
1584 +
1585 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1586 + sleep(2)
1587 +
1588 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1589 + drone.move(1,100,0,50,-50)
1590 + drone.move(3,100,0,100,0)
1591 + drone.move(1,0,0,0,100)
1592 +
1593 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1594 + drone.emergency_stop() #모든 모터 즉시 종료
1595 + drone.send_link_disconnect() #드론 연결 종료
1596 + drone.close() #시리얼 포트를 닫습니다.
1597 +
1598 +# 'ㅎ' 드론 함수
1599 +def Move_H_1() :
1600 + drone = CoDrone.CoDrone() #드론객체생성
1601 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1602 +
1603 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1604 + sleep(0.5)
1605 +
1606 + if drone.isConnected():
1607 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1608 + sleep(2)
1609 +
1610 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1611 +
1612 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1613 + drone.move(1,10,0,0,-100)
1614 + drone.move(3,100,0,0,0)
1615 + drone.move(1,0,0,0,-50)
1616 +
1617 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1618 + sleep(2)
1619 +
1620 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1621 + drone.move(1,10,0,0,-100)
1622 + drone.move(3,100,0,0,0)
1623 + drone.move(1,0,0,0,-100)
1624 +
1625 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1626 + sleep(2)
1627 +
1628 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1629 + drone.move(1,-100,0,50,-50)
1630 + drone.move(3,-100,0,100,0)
1631 + drone.move(1,0,0,0,100)
1632 +
1633 + drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
1634 + sleep(2)
1635 +
1636 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1637 + drone.move(1,100,0,50,-50)
1638 + drone.move(3,100,0,100,0)
1639 + drone.move(1,0,0,0,100)
1640 +
1641 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1642 + drone.emergency_stop() #모든 모터 즉시 종료
1643 + drone.send_link_disconnect() #드론 연결 종료
1644 + drone.close() #시리얼 포트를 닫습니다.
1645 +
1646 +#consonant 드론 함수 - end
1647 +
1648 +#vowel 드론 함수 - start
1649 +# 'ㅣ'
1650 +def Move_I() :
1651 + drone = CoDrone.CoDrone() #드론객체생성
1652 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1653 +
1654 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1655 + sleep(0.5)
1656 +
1657 + if drone.isConnected():
1658 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1659 + sleep(2)
1660 +
1661 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1662 +
1663 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1664 + drone.move(1,0,-100,0,-100)
1665 + drone.move(3,0,-100,0,0)
1666 + drone.move(1,0,0,0,100)
1667 +
1668 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1669 + drone.emergency_stop() #모든 모터 즉시 종료
1670 + drone.send_link_disconnect() #드론 연결 종료
1671 + drone.close() #시리얼 포트를 닫습니다.
1672 +
1673 +# 'ㅏ'
1674 +def Move_A() :
1675 + drone = CoDrone.CoDrone() #드론객체생성
1676 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1677 +
1678 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1679 + sleep(0.5)
1680 +
1681 + if drone.isConnected():
1682 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1683 + sleep(2)
1684 +
1685 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1686 +
1687 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1688 + drone.move(1,0,-100,0,-100)
1689 + drone.move(3,0,-100,0,0)
1690 + drone.move(1,0,0,0,100)
1691 +
1692 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1693 + sleep(2)
1694 +
1695 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1696 + drone.move(0.5,100,0,0,100)
1697 + drone.move(2,100,0,0,0)
1698 + drone.move(0.5,0,0,0,-100)
1699 +
1700 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1701 + drone.emergency_stop() #모든 모터 즉시 종료
1702 + drone.send_link_disconnect() #드론 연결 종료
1703 + drone.close() #시리얼 포트를 닫습니다.
1704 +
1705 +#'ㅑ'
1706 +def Move_Ya() :
1707 + drone = CoDrone.CoDrone() #드론객체생성
1708 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1709 +
1710 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1711 + sleep(0.5)
1712 +
1713 + if drone.isConnected():
1714 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1715 + sleep(2)
1716 +
1717 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1718 +
1719 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1720 + drone.move(1,0,-100,0,-100)
1721 + drone.move(3,0,-100,0,0)
1722 + drone.move(1,0,0,0,100)
1723 +
1724 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1725 + sleep(2)
1726 +
1727 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1728 + drone.move(0.5,100,0,0,100)
1729 + drone.move(2,100,0,0,0)
1730 + drone.move(0.5,0,0,0,-100)
1731 +
1732 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1733 + sleep(2)
1734 +
1735 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1736 + drone.move(0.5,100,0,0,100)
1737 + drone.move(2,100,0,0,0)
1738 + drone.move(0.5,0,0,0,-100)
1739 +
1740 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1741 + drone.emergency_stop() #모든 모터 즉시 종료
1742 + drone.send_link_disconnect() #드론 연결 종료
1743 + drone.close() #시리얼 포트를 닫습니다.
1744 +
1745 +#'ㅐ'
1746 +def Move_Ae() :
1747 + drone = CoDrone.CoDrone() #드론객체생성
1748 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1749 +
1750 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1751 + sleep(0.5)
1752 +
1753 + if drone.isConnected():
1754 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1755 + sleep(2)
1756 +
1757 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1758 +
1759 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1760 + drone.move(1,0,-100,0,-100)
1761 + drone.move(3,0,-100,0,0)
1762 + drone.move(1,0,0,0,100)
1763 +
1764 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1765 + sleep(2)
1766 +
1767 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1768 + drone.move(1,0,-100,0,-100)
1769 + drone.move(3,0,-100,0,0)
1770 + drone.move(1,0,0,0,100)
1771 +
1772 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1773 + sleep(2)
1774 +
1775 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1776 + drone.move(0.5,100,0,0,100)
1777 + drone.move(2,100,0,0,0)
1778 + drone.move(0.5,0,0,0,-50)
1779 +
1780 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1781 + drone.emergency_stop() #모든 모터 즉시 종료
1782 + drone.send_link_disconnect() #드론 연결 종료
1783 + drone.close() #시리얼 포트를 닫습니다.
1784 +
1785 +#'ㅒ'
1786 +def Move_Yae() :
1787 + drone = CoDrone.CoDrone() #드론객체생성
1788 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1789 +
1790 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1791 + sleep(0.5)
1792 +
1793 + if drone.isConnected():
1794 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1795 + sleep(2)
1796 +
1797 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1798 +
1799 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1800 + drone.move(1,0,-100,0,-100)
1801 + drone.move(3,0,-100,0,0)
1802 + drone.move(1,0,0,0,100)
1803 +
1804 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1805 + sleep(2)
1806 +
1807 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1808 + drone.move(1,0,-100,0,-100)
1809 + drone.move(3,0,-100,0,0)
1810 + drone.move(1,0,0,0,100)
1811 +
1812 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1813 + sleep(2)
1814 +
1815 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1816 + drone.move(0.5,100,0,0,100)
1817 + drone.move(2,100,0,0,0)
1818 + drone.move(0.5,0,0,0,-50)
1819 +
1820 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1821 + sleep(2)
1822 +
1823 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1824 + drone.move(0.5,100,0,0,100)
1825 + drone.move(2,100,0,0,0)
1826 + drone.move(0.5,0,0,0,-50)
1827 +
1828 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1829 + drone.emergency_stop() #모든 모터 즉시 종료
1830 + drone.send_link_disconnect() #드론 연결 종료
1831 + drone.close() #시리얼 포트를 닫습니다.
1832 +
1833 +
1834 +#'ㅓ'
1835 +def Move_Eo() :
1836 + drone = CoDrone.CoDrone() #드론객체생성
1837 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1838 +
1839 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1840 + sleep(0.5)
1841 +
1842 + if drone.isConnected():
1843 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1844 + sleep(2)
1845 +
1846 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1847 +
1848 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1849 + drone.move(0.5,10,0,0,-100)
1850 + drone.move(2,100,0,0,0)
1851 + drone.move(0.5,0,0,0,100)
1852 +
1853 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1854 + sleep(2)
1855 +
1856 +
1857 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1858 + drone.move(1,0,-100,0,-100)
1859 + drone.move(3,0,-100,0,0)
1860 + drone.move(1,0,0,0,100)
1861 +
1862 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1863 + drone.emergency_stop() #모든 모터 즉시 종료
1864 + drone.send_link_disconnect() #드론 연결 종료
1865 + drone.close() #시리얼 포트를 닫습니다.
1866 +
1867 +#'ㅕ'
1868 +def Move_Yeo() :
1869 + drone = CoDrone.CoDrone() #드론객체생성
1870 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1871 +
1872 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1873 + sleep(0.5)
1874 +
1875 + if drone.isConnected():
1876 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1877 + sleep(2)
1878 +
1879 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1880 +
1881 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1882 + drone.move(0.5,10,0,0,-100)
1883 + drone.move(2,100,0,0,0)
1884 + drone.move(0.5,0,0,0,100)
1885 +
1886 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1887 + sleep(2)
1888 +
1889 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1890 + drone.move(0.5,10,0,0,-100)
1891 + drone.move(2,100,0,0,0)
1892 + drone.move(0.5,0,0,0,100)
1893 +
1894 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1895 + sleep(2)
1896 +
1897 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1898 + drone.move(1,0,-100,0,-100)
1899 + drone.move(3,0,-100,0,0)
1900 + drone.move(1,0,0,0,100)
1901 +
1902 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1903 + drone.emergency_stop() #모든 모터 즉시 종료
1904 + drone.send_link_disconnect() #드론 연결 종료
1905 + drone.close() #시리얼 포트를 닫습니다.
1906 +
1907 +#'ㅔ'
1908 +def Move_E() :
1909 + drone = CoDrone.CoDrone() #드론객체생성
1910 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1911 +
1912 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1913 + sleep(0.5)
1914 +
1915 + if drone.isConnected():
1916 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1917 + sleep(2)
1918 +
1919 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1920 +
1921 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1922 + drone.move(0.5,10,0,0,-100)
1923 + drone.move(2,100,0,0,0)
1924 + drone.move(0.5,0,0,0,100)
1925 +
1926 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1927 + sleep(2)
1928 +
1929 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1930 + drone.move(1,0,-100,0,-100)
1931 + drone.move(3,0,-100,0,0)
1932 + drone.move(1,0,0,0,100)
1933 +
1934 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1935 + sleep(2)
1936 +
1937 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1938 + drone.move(1,0,-100,0,-100)
1939 + drone.move(3,0,-100,0,0)
1940 + drone.move(1,0,0,0,100)
1941 +
1942 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1943 + drone.emergency_stop() #모든 모터 즉시 종료
1944 + drone.send_link_disconnect() #드론 연결 종료
1945 + drone.close() #시리얼 포트를 닫습니다.
1946 +
1947 +#'ㅖ'
1948 +def Move_Ye() :
1949 + drone = CoDrone.CoDrone() #드론객체생성
1950 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1951 +
1952 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
1953 + sleep(0.5)
1954 +
1955 + if drone.isConnected():
1956 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1957 + sleep(2)
1958 +
1959 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
1960 +
1961 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1962 + drone.move(0.5,10,0,0,-100)
1963 + drone.move(2,100,0,0,0)
1964 + drone.move(0.5,0,0,0,100)
1965 +
1966 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1967 + sleep(2)
1968 +
1969 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1970 + drone.move(0.5,10,0,0,-100)
1971 + drone.move(2,100,0,0,0)
1972 + drone.move(0.5,0,0,0,100)
1973 +
1974 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1975 + sleep(2)
1976 +
1977 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1978 + drone.move(1,0,-100,0,-100)
1979 + drone.move(3,0,-100,0,0)
1980 + drone.move(1,0,0,0,100)
1981 +
1982 + drone.all_colors(255,0,0,100) # 빨강 (대기)
1983 + sleep(2)
1984 +
1985 + drone.all_colors(0,0,255,100) # 파랑 (동작)
1986 + drone.move(1,0,-100,0,-100)
1987 + drone.move(3,0,-100,0,0)
1988 + drone.move(1,0,0,0,100)
1989 +
1990 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
1991 + drone.emergency_stop() #모든 모터 즉시 종료
1992 + drone.send_link_disconnect() #드론 연결 종료
1993 + drone.close() #시리얼 포트를 닫습니다.
1994 +
1995 +#'ㅡ'
1996 +def Move_Eu() :
1997 + drone = CoDrone.CoDrone() #드론객체생성
1998 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
1999 +
2000 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2001 + sleep(0.5)
2002 +
2003 + if drone.isConnected():
2004 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2005 + sleep(2)
2006 +
2007 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2008 +
2009 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2010 + drone.move(1,10,0,0,-100)
2011 + drone.move(3,100,0,0,0)
2012 + drone.move(1,0,0,0,-100)
2013 +
2014 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2015 + drone.emergency_stop() #모든 모터 즉시 종료
2016 + drone.send_link_disconnect() #드론 연결 종료
2017 + drone.close() #시리얼 포트를 닫습니다.
2018 +
2019 +#'ㅜ'
2020 +def Move_U() :
2021 + drone = CoDrone.CoDrone() #드론객체생성
2022 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2023 +
2024 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2025 + sleep(0.5)
2026 +
2027 + if drone.isConnected():
2028 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2029 + sleep(2)
2030 +
2031 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2032 +
2033 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2034 + drone.move(1,10,0,0,-100)
2035 + drone.move(3,100,0,0,0)
2036 + drone.move(1,0,0,0,-100)
2037 +
2038 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2039 + sleep(2)
2040 +
2041 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2042 + drone.move(0.5,0,-100,0,-100)
2043 + drone.move(2,0,-100,0,0)
2044 + drone.move(0.5,0,0,0,100)
2045 +
2046 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2047 + drone.emergency_stop() #모든 모터 즉시 종료
2048 + drone.send_link_disconnect() #드론 연결 종료
2049 + drone.close() #시리얼 포트를 닫습니다.
2050 +
2051 +#'ㅠ'
2052 +def Move_Yu() :
2053 + drone = CoDrone.CoDrone() #드론객체생성
2054 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2055 +
2056 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2057 + sleep(0.5)
2058 +
2059 + if drone.isConnected():
2060 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2061 + sleep(2)
2062 +
2063 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2064 +
2065 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2066 + drone.move(1,10,0,0,-100)
2067 + drone.move(3,100,0,0,0)
2068 + drone.move(1,0,0,0,-100)
2069 +
2070 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2071 + sleep(2)
2072 +
2073 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2074 + drone.move(0.5,0,-100,0,-100)
2075 + drone.move(2,0,-100,0,0)
2076 + drone.move(0.5,0,0,0,100)
2077 +
2078 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2079 + sleep(2)
2080 +
2081 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2082 + drone.move(0.5,0,-100,0,-100)
2083 + drone.move(2,0,-100,0,0)
2084 + drone.move(0.5,0,0,0,100)
2085 +
2086 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2087 + drone.emergency_stop() #모든 모터 즉시 종료
2088 + drone.send_link_disconnect() #드론 연결 종료
2089 + drone.close() #시리얼 포트를 닫습니다.
2090 +
2091 +#'ㅗ'
2092 +def Move_O() :
2093 + drone = CoDrone.CoDrone() #드론객체생성
2094 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2095 +
2096 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2097 + sleep(0.5)
2098 +
2099 + if drone.isConnected():
2100 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2101 + sleep(2)
2102 +
2103 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2104 +
2105 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2106 + drone.move(0.5,0,-100,0,-100)
2107 + drone.move(2,0,-100,0,0)
2108 + drone.move(0.5,0,0,0,100)
2109 +
2110 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2111 + sleep(2)
2112 +
2113 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2114 + drone.move(1,10,0,0,-100)
2115 + drone.move(3,100,0,0,0)
2116 + drone.move(1,0,0,0,-100)
2117 +
2118 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2119 + drone.emergency_stop() #모든 모터 즉시 종료
2120 + drone.send_link_disconnect() #드론 연결 종료
2121 + drone.close() #시리얼 포트를 닫습니다.
2122 +
2123 +#'ㅛ'
2124 +def Move_Yo() :
2125 + drone = CoDrone.CoDrone() #드론객체생성
2126 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2127 +
2128 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2129 + sleep(0.5)
2130 +
2131 + if drone.isConnected():
2132 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2133 + sleep(2)
2134 +
2135 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2136 +
2137 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2138 + drone.move(0.5,0,-100,0,-100)
2139 + drone.move(2,0,-100,0,0)
2140 + drone.move(0.5,0,0,0,100)
2141 +
2142 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2143 + sleep(2)
2144 +
2145 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2146 + drone.move(0.5,0,-100,0,-100)
2147 + drone.move(2,0,-100,0,0)
2148 + drone.move(0.5,0,0,0,100)
2149 +
2150 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2151 + sleep(2)
2152 +
2153 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2154 + drone.move(1,10,0,0,-100)
2155 + drone.move(3,100,0,0,0)
2156 + drone.move(1,0,0,0,-100)
2157 +
2158 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2159 + drone.emergency_stop() #모든 모터 즉시 종료
2160 + drone.send_link_disconnect() #드론 연결 종료
2161 + drone.close() #시리얼 포트를 닫습니다.
2162 +
2163 +#'ㅢ'
2164 +def Move_Ui() :
2165 + drone = CoDrone.CoDrone() #드론객체생성
2166 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2167 +
2168 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2169 + sleep(0.5)
2170 +
2171 + if drone.isConnected():
2172 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2173 + sleep(2)
2174 +
2175 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2176 +
2177 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2178 + drone.move(1,10,0,0,-100)
2179 + drone.move(3,100,0,0,0)
2180 + drone.move(1,0,0,0,-100)
2181 +
2182 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2183 + sleep(2)
2184 +
2185 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2186 + drone.move(1,0,-100,0,-100)
2187 + drone.move(3,0,-100,0,0)
2188 + drone.move(1,0,0,0,100)
2189 +
2190 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2191 + drone.emergency_stop() #모든 모터 즉시 종료
2192 + drone.send_link_disconnect() #드론 연결 종료
2193 + drone.close() #시리얼 포트를 닫습니다.
2194 +
2195 +#'ㅟ'
2196 +def Move_Wi() :
2197 + drone = CoDrone.CoDrone() #드론객체생성
2198 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2199 +
2200 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2201 + sleep(0.5)
2202 +
2203 + if drone.isConnected():
2204 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2205 + sleep(2)
2206 +
2207 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2208 +
2209 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2210 + drone.move(1,10,0,0,-100)
2211 + drone.move(3,100,0,0,0)
2212 + drone.move(1,0,0,0,-100)
2213 +
2214 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2215 + sleep(2)
2216 +
2217 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2218 + drone.move(0.5,0,-100,0,-100)
2219 + drone.move(2,0,-100,0,0)
2220 + drone.move(0.5,0,0,0,100)
2221 +
2222 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2223 + sleep(2)
2224 +
2225 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2226 + drone.move(1,0,-100,0,-100)
2227 + drone.move(3,0,-100,0,0)
2228 + drone.move(1,0,0,0,100)
2229 +
2230 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2231 + drone.emergency_stop() #모든 모터 즉시 종료
2232 + drone.send_link_disconnect() #드론 연결 종료
2233 + drone.close() #시리얼 포트를 닫습니다.
2234 +
2235 +#'ㅝ'
2236 +def Move_Wo() :
2237 + drone = CoDrone.CoDrone() #드론객체생성
2238 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2239 +
2240 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2241 + sleep(0.5)
2242 +
2243 + if drone.isConnected():
2244 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2245 + sleep(2)
2246 +
2247 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2248 +
2249 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2250 + drone.move(1,10,0,0,-100)
2251 + drone.move(3,100,0,0,0)
2252 + drone.move(1,0,0,0,-100)
2253 +
2254 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2255 + sleep(2)
2256 +
2257 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2258 + drone.move(0.5,0,-100,0,-100)
2259 + drone.move(2,0,-100,0,0)
2260 + drone.move(0.5,0,0,0,100)
2261 +
2262 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2263 + sleep(2)
2264 +
2265 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2266 + drone.move(0.5,10,0,0,-100)
2267 + drone.move(2,100,0,0,0)
2268 + drone.move(0.5,0,0,0,100)
2269 +
2270 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2271 + sleep(2)
2272 +
2273 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2274 + drone.move(1,0,-100,0,-100)
2275 + drone.move(3,0,-100,0,0)
2276 + drone.move(1,0,0,0,100)
2277 +
2278 +
2279 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2280 + drone.emergency_stop() #모든 모터 즉시 종료
2281 + drone.send_link_disconnect() #드론 연결 종료
2282 + drone.close() #시리얼 포트를 닫습니다.
2283 +
2284 +#'ㅞ'
2285 +def Move_We() :
2286 + drone = CoDrone.CoDrone() #드론객체생성
2287 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2288 +
2289 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2290 + sleep(0.5)
2291 +
2292 + if drone.isConnected():
2293 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2294 + sleep(2)
2295 +
2296 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2297 +
2298 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2299 + drone.move(1,10,0,0,-100)
2300 + drone.move(3,100,0,0,0)
2301 + drone.move(1,0,0,0,-100)
2302 +
2303 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2304 + sleep(2)
2305 +
2306 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2307 + drone.move(0.5,0,-100,0,-100)
2308 + drone.move(2,0,-100,0,0)
2309 + drone.move(0.5,0,0,0,100)
2310 +
2311 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2312 + sleep(2)
2313 +
2314 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2315 + drone.move(0.5,10,0,0,-100)
2316 + drone.move(2,100,0,0,0)
2317 + drone.move(0.5,0,0,0,100)
2318 +
2319 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2320 + sleep(2)
2321 +
2322 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2323 + drone.move(1,0,-100,0,-100)
2324 + drone.move(3,0,-100,0,0)
2325 + drone.move(1,0,0,0,100)
2326 +
2327 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2328 + sleep(2)
2329 +
2330 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2331 + drone.move(1,0,-100,0,-100)
2332 + drone.move(3,0,-100,0,0)
2333 + drone.move(1,0,0,0,100)
2334 +
2335 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2336 + drone.emergency_stop() #모든 모터 즉시 종료
2337 + drone.send_link_disconnect() #드론 연결 종료
2338 + drone.close() #시리얼 포트를 닫습니다.
2339 +
2340 +#'ㅚ'
2341 +def Move_Oe() :
2342 + drone = CoDrone.CoDrone() #드론객체생성
2343 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2344 +
2345 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2346 + sleep(0.5)
2347 +
2348 + if drone.isConnected():
2349 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2350 + sleep(2)
2351 +
2352 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2353 +
2354 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2355 + drone.move(0.5,0,-100,0,-100)
2356 + drone.move(2,0,-100,0,0)
2357 + drone.move(0.5,0,0,0,100)
2358 +
2359 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2360 + sleep(2)
2361 +
2362 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2363 + drone.move(1,10,0,0,-100)
2364 + drone.move(3,100,0,0,0)
2365 + drone.move(1,0,0,0,-100)
2366 +
2367 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2368 + sleep(2)
2369 +
2370 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2371 + drone.move(1,0,-100,0,-100)
2372 + drone.move(3,0,-100,0,0)
2373 + drone.move(1,0,0,0,100)
2374 +
2375 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2376 + drone.emergency_stop() #모든 모터 즉시 종료
2377 + drone.send_link_disconnect() #드론 연결 종료
2378 + drone.close() #시리얼 포트를 닫습니다.
2379 +
2380 +#'ㅘ'
2381 +def Move_Wa() :
2382 + drone = CoDrone.CoDrone() #드론객체생성
2383 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2384 +
2385 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2386 + sleep(0.5)
2387 +
2388 + if drone.isConnected():
2389 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2390 + sleep(2)
2391 +
2392 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2393 +
2394 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2395 + drone.move(0.5,0,-100,0,-100)
2396 + drone.move(2,0,-100,0,0)
2397 + drone.move(0.5,0,0,0,100)
2398 +
2399 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2400 + sleep(2)
2401 +
2402 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2403 + drone.move(1,10,0,0,-100)
2404 + drone.move(3,100,0,0,0)
2405 + drone.move(1,0,0,0,-100)
2406 +
2407 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2408 + sleep(2)
2409 +
2410 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2411 + drone.move(1,0,-100,0,-100)
2412 + drone.move(3,0,-100,0,0)
2413 + drone.move(1,0,0,0,100)
2414 +
2415 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2416 + sleep(2)
2417 +
2418 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2419 + drone.move(0.5,100,0,0,100)
2420 + drone.move(2,100,0,0,0)
2421 + drone.move(0.5,0,0,0,-100)
2422 +
2423 +
2424 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2425 + drone.emergency_stop() #모든 모터 즉시 종료
2426 + drone.send_link_disconnect() #드론 연결 종료
2427 + drone.close() #시리얼 포트를 닫습니다.
2428 +
2429 +#'ㅙ'
2430 +def Move_Wae() :
2431 + drone = CoDrone.CoDrone() #드론객체생성
2432 + drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
2433 +
2434 + drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
2435 + sleep(0.5)
2436 +
2437 + if drone.isConnected():
2438 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2439 + sleep(2)
2440 +
2441 + drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
2442 +
2443 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2444 + drone.move(0.5,0,-100,0,-100)
2445 + drone.move(2,0,-100,0,0)
2446 + drone.move(0.5,0,0,0,100)
2447 +
2448 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2449 + sleep(2)
2450 +
2451 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2452 + drone.move(1,10,0,0,-100)
2453 + drone.move(3,100,0,0,0)
2454 + drone.move(1,0,0,0,-100)
2455 +
2456 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2457 + sleep(2)
2458 +
2459 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2460 + drone.move(1,0,-100,0,-100)
2461 + drone.move(3,0,-100,0,0)
2462 + drone.move(1,0,0,0,100)
2463 +
2464 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2465 + sleep(2)
2466 +
2467 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2468 + drone.move(0.5,100,0,0,100)
2469 + drone.move(2,100,0,0,0)
2470 + drone.move(0.5,0,0,0,-100)
2471 +
2472 + drone.all_colors(255,0,0,100) # 빨강 (대기)
2473 + sleep(2)
2474 +
2475 + drone.all_colors(0,0,255,100) # 파랑 (동작)
2476 + drone.move(1,0,-100,0,-100)
2477 + drone.move(3,0,-100,0,0)
2478 + drone.move(1,0,0,0,100)
2479 +
2480 + drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
2481 + drone.emergency_stop() #모든 모터 즉시 종료
2482 + drone.send_link_disconnect() #드론 연결 종료
2483 + drone.close() #시리얼 포트를 닫습니다.
2484 +
2485 +#vowel 드론 함수 - end
...\ No newline at end of file ...\ No newline at end of file
1 +import sys
2 +from PyQt5.QtWidgets import *
3 +from PyQt5.QtGui import *
4 +from PyQt5 import *
5 +from PyQt5.QtCore import *
6 +from PyQt5 import uic
7 +
8 +from time import sleep
9 +import dialog
10 +import drone
11 +
12 +
13 +#UI파일 연결, 단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
14 +mainWindow_ui = uic.loadUiType("ui\mainWindow.ui")[0]
15 +
16 +class CharacteristicWindow(QMainWindow):
17 + nextCount = 0
18 + def __init__(self, parent):
19 + super(CharacteristicWindow, self).__init__(parent)
20 + characteristic_ui = 'ui\characteristic.ui'
21 + uic.loadUi(characteristic_ui, self)
22 +
23 + self.statusBar().showMessage('Characteristic', 3000)
24 +
25 + self.show()
26 + self.tBrowser.setStyleSheet('font-size:15px;')
27 + self.tBrowser.append("""<font color='blue'>[ Next ]버튼을 눌러주세요.</font>""")
28 + self.pButton_Next.clicked.connect(self.SetNext)
29 + self.pButton_Main.clicked.connect(self.GoMain)
30 + self.pButton_Start.clicked.connect(self.GoStart)
31 +
32 + def SetNext(self) :
33 +
34 + if self.nextCount == 0 :
35 + self.nextCount += 1
36 + self.tBrowser.clear()
37 + self.tBrowser.append("""[ Keyword : <b>글자, 자음, 모음</b> ] """)
38 + elif self.nextCount == 1 :
39 + self.nextCount += 1
40 + self.tBrowser.append(
41 + """<br><br>한글은 조선 시대 세종대왕께서 만드신 <u>글자 체계</u>로, 한국어의 기록을 위해 제작되었습니다.""")
42 + elif self.nextCount == 2 :
43 + self.nextCount += 1
44 + self.tBrowser.append(
45 + """<br>현대 한글을 기준으로,<br><u>자모</u>에서 글자, 글자에서 단어, 단어에서 문장으로 확장됩니다.""")
46 + elif self.nextCount == 3 :
47 + self.nextCount += 1
48 + self.tBrowser.append(
49 + """<br>한글은 기본적으로 <u>자음</u>과 <u>모음</u>으로 구성되는데,<br>자음은 기본 자음 14자, 기본 자음들의 결합으로 만들어진 겹자모 5자로 <br>자음은 19자로 구성됩나다.""")
50 + elif self.nextCount == 4 :
51 + self.nextCount += 1
52 + self.tBrowser.append(
53 + """모음은 기본 모음 10자, 이중모음 11자로 <br>모음은 21자로 구성되어<br>총 24자의 기본자모들이 합쳐져서 40자의 자모를 구성합니다.""")
54 + elif self.nextCount == 5 :
55 + self.nextCount += 1
56 + self.tBrowser.append(
57 + """<br>보편적인 글자는 자모의 결합인 모아쓰기를 기준으로 이루어지며<br>한 글자는 [ 초성 + 중성 ] 혹은 [초성 + 중성 + 종성 ]의 형태로 이루어져 있습니다.""")
58 + elif self.nextCount == 6 :
59 + self.nextCount += 1
60 + self.tBrowser.append(
61 + """초성과 종성에는 자음이 오고, 중성에는 모음이 자리합니다.<br>(종성에는 예외적으로 쌍자음 이외의 겹자음들이 존재합니다.)""")
62 + elif self.nextCount == 7 :
63 + self.nextCount += 1
64 + self.tBrowser.append(
65 + """<br><br>+) <br>한글은 모아쓰기로 인해 경우의 수가 다른 글자보다 큽니다.<br>따라서 전산화 및 폰트 제작에 많은 노력이 들어갑니다.""")
66 + else :
67 + self.pButton_Next.setText('End')
68 + pass
69 +
70 + def GoMain(self) :
71 + self.nextCount = 0
72 + self.close()
73 + firstWindow.show()
74 + firstWindow.statusBar().showMessage('Main', 3000)
75 +
76 + def GoStart(self) :
77 + self.nextCount = 0
78 + self.close()
79 + startWindow = StartWindow(self)
80 + startWindow.show()
81 +
82 +class IntroWindow(QMainWindow):
83 +
84 + nextCount_intro = 0
85 + def __init__(self, parent):
86 + super(IntroWindow, self).__init__(parent)
87 + intro_ui = 'ui\introduction.ui'
88 + uic.loadUi(intro_ui, self)
89 +
90 + self.statusBar().showMessage('Introduction', 3000)
91 +
92 + self.show()
93 + self.tBrowser.setStyleSheet('font-size:15px;')
94 + self.tBrowser.append("""<font color='blue'>[ Next ]버튼을 눌러주세요.</font>""")
95 + self.pButton_Next.clicked.connect(self.SetNext)
96 + self.pButton_Main.clicked.connect(self.GoMain)
97 + self.pButton_Start.clicked.connect(self.GoStart)
98 +
99 + def SetNext(self) :
100 + if self.nextCount_intro == 0 :
101 + self.nextCount_intro += 1
102 + self.tBrowser.clear()
103 + self.tBrowser.append("""[ Keyword : <b>, 궁서체, 획</b> ] """)
104 + elif self.nextCount_intro == 1 :
105 + self.nextCount_intro += 1
106 + self.tBrowser.append(
107 + """<br><br>궁서체 서예는 다음과 같은 특성을 가지고 있습니다.""")
108 + elif self.nextCount_intro == 2 :
109 + self.nextCount_intro += 1
110 + self.tBrowser.append(
111 + """<br><br><b>1. 하나의 글자는 다른 글자와 <u>독립적</u>으로 작성됩니다.</b>""")
112 + elif self.nextCount_intro == 3 :
113 + self.nextCount_intro += 1
114 + self.tBrowser.append(
115 + """<br><b>2. 모음은 크게 <u>'ㅣ' 파생</u>, <u>'ㅡ' 파생</u>, <u>'ㅢ' 파생</u> 3가지로 나눌수 있습니다.</b>""")
116 + elif self.nextCount_intro == 4 :
117 + self.nextCount_intro += 1
118 + self.tBrowser.append(
119 + """<br>[ 'ㅣ' 파생 ]<br>자음의 오른쪽에 위치합니다.<br>파생 기준인 'ㅣ'에서 추가되는 획의 위치에 따라 내향모음, 외향모음으로 구분됩니다.<br><br>'ㅣ' 외향 파생 모음 : ㅏ ㅑ ㅐ ㅒ ㅣ<br>'ㅣ' 내향 파생 모음 : ㅓ ㅕ ㅔ ㅖ""")
120 + elif self.nextCount_intro == 5 :
121 + self.nextCount_intro += 1
122 + self.tBrowser.append(
123 + """<br>[ 'ㅡ' 파생 ]<br>자음의 아래쪽에 위치합니다.<br>파생 기준인 'ㅡ'에서 추가되는 획의 위치에 따라 내향, 외향으로 구분됩니다.<br><br>'ㅡ' 외향 파생 모음 : ㅡ ㅜ ㅠ <br>'ㅡ' 내향 파생 모음 : ㅗ ㅛ""")
124 + elif self.nextCount_intro == 6 :
125 + self.nextCount_intro += 1
126 + self.tBrowser.append(
127 + """<br>[ 'ㅢ' 파생 ]<br>자음의 오른쪽과 아래쪽 동시에 위치합니다.<br>특이하게 'ㅢ'파생은 두가지 모음의 결합으로 형성됩니다.<br>파생 기준인 하단부의 'ㅡ'에서 추가되는 획의 위치에 따라 내향, 외향으로 구분됩니다.<br><br>'ㅢ' 외향 파생 모음 : ㅟ ㅝ ㅞ ㅢ <br>'ㅢ' 내향 파생 모음 : ㅚ ㅘ ㅙ <br><br>한 글자 내의 모음은 자음에 따라 변화하지 않습니다.""")
128 + elif self.nextCount_intro == 7 :
129 + self.nextCount_intro += 1
130 + self.tBrowser.append(
131 + """<br><b>3. 자음은 아래와 같은 <u>기본 자음</u>에서 파생됩니다.</b><br><br> ['ㄱ' 파생] : ㄱ ㅋ ㄲ<br>['ㄴ' 파생] : ㄴ ㄷ ㄹ ㅌ ㄸ<br>['ㅁ' 파생] : ㅁ ㅂ ㅍ ㅃ<br>['ㅅ' 파생] : ㅅ ㅈ ㅊ ㅆ ㅉ<br>['ㅇ' 파생] : ㅇ ㅎ<br><br>자음은 마지막 획이 다음에 오는 외향 모음과 수직일 경우 모양이 변화할 수있습니다.""")
132 + elif self.nextCount_intro == 8 :
133 + self.nextCount_intro += 1
134 + self.tBrowser.append(
135 + """<br>4. 한글의 모아쓰기의 구조로 인해 모든 글자는 <br><b>[ 초성 + 중성 ]</b> or <b>[ 초성 + 중성 + 종성 ]</b><br>형태를 가집니다.<br><br> [ 초성 + 중성 ] 형태의 글자는 [ 초성 + 중성 + 종성] 형태의 글자와 다르게<br> 단순히 비율적으로 종성의 부분만큼 늘어납니다.""")
136 + else :
137 + self.pButton_Next.setText('End')
138 +
139 + def GoMain(self) :
140 + self.nextCount_intro = 0
141 + self.close()
142 + firstWindow.statusBar().showMessage('Main', 3000)
143 + firstWindow.show()
144 +
145 + def GoStart(self) :
146 + self.nextCount_intro = 0
147 + self.close()
148 + startWindow = StartWindow(self)
149 + startWindow.show()
150 +
151 +class PracticeWindow(QMainWindow):
152 + def __init__(self, parent):
153 + super(PracticeWindow, self).__init__(parent)
154 + practice_ui = 'ui\practice.ui'
155 + uic.loadUi(practice_ui, self)
156 +
157 + self.statusBar().showMessage('practice', 3000)
158 + self.setWindowTitle('Calligraphy Assist Program By Drone')
159 +
160 + self.show()
161 + self.ConnectButton()
162 +
163 + def ConnectButton(self) :
164 + self.pButton_Main.clicked.connect(self.GoMain)
165 + self.pButton_Start.clicked.connect(self.GoStart)
166 + self.pButton_point0.clicked.connect(self.GoPoint0)
167 + self.pButton_point1.clicked.connect(self.GoPoint1)
168 + self.pButton_point2.clicked.connect(self.GoPoint2)
169 + self.pButton_point3.clicked.connect(self.GoPoint3)
170 + self.pButton_horizontal.clicked.connect(self.GoHorizontal)
171 + self.pButton_vertical.clicked.connect(self.GoVertical)
172 + self.pButton_diagonal_left.clicked.connect(self.GoDiagonalLeft)
173 + self.pButton_diagonal_right.clicked.connect(self.GoDiagonalRight)
174 + self.pButton_curve_left.clicked.connect(self.GoCurveLeft)
175 + self.pButton_curve_right.clicked.connect(self.GoCurveRight)
176 +
177 + def GoPoint0(self) :
178 + _dialog = dialog.Dialog(self)
179 + _dialog.show()
180 + pixmap = QPixmap("ui\image_practice\point0 (2)") #이미지 생성
181 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
182 + _dialog.text_0.setText("수직으로 붓을 놓습니다.<br>가볍게 점을 찍고<br>붓을 가볍게 뗍니다.<br><br><b>드론 학습 지원X</b>")
183 +
184 + def GoPoint1(self) :
185 + _dialog = dialog.Dialog(self)
186 + _dialog.show()
187 + pixmap = QPixmap("ui\image_practice\point1 (2)") #이미지 생성
188 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
189 + _dialog.text_0.setText("종이와 <b>45°</b>가 되게 <br>붓을 눕혀 놓습니다.<br>가볍게 점을 찍고<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>.") #라벨에 텍스트추가
190 +
191 + def GoPoint2(self) :
192 + _dialog = dialog.Dialog(self)
193 + _dialog.show()
194 + pixmap = QPixmap("ui\image_practice\point2 (2)") #이미지 생성
195 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
196 + _dialog.text_0.setText("종이와 <b>45 °</b>가 되게 <br>붓을 대각선으로 눕혀서 <br> 놓습니다.<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>") #라벨에 텍스트추가
197 +
198 + def GoPoint3(self) :
199 + _dialog = dialog.Dialog(self)
200 + _dialog.show()
201 + pixmap = QPixmap("ui\image_practice\point3 (2)") #이미지 생성
202 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
203 + _dialog.text_0.setText("종이와 <b>45 °</b>가 되게 <br>붓을 대각선으로 눕혀서 <br>위로 놓습니다.<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>") #라벨에 텍스트추가
204 +
205 +
206 + def GoHorizontal(self) :
207 + _dialog = dialog.Dialog(self) #다이얼로그 생성
208 + pixmap = QPixmap("ui\image_practice\horizontal (2)") #이미지 생성
209 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
210 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측으로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
211 + _dialog.show()
212 + _dialog.pButton_drone.clicked.connect(drone.Move_Right)
213 +
214 + def GoVertical(self) :
215 + _dialog = dialog.Dialog(self)
216 + _dialog.show()
217 + pixmap = QPixmap("ui\image_practice\_vertical (2)") #이미지 생성
218 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
219 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>아래측으로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
220 + _dialog.pButton_drone.clicked.connect(drone.Move_Down)
221 +
222 + def GoDiagonalLeft(self) :
223 + _dialog = dialog.Dialog(self)
224 + _dialog.show()
225 + pixmap = QPixmap("ui\image_practice\diagonal_left (2)") #이미지 생성
226 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
227 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>좌측 아래로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
228 + _dialog.pButton_drone.clicked.connect(drone.Move_DiagonalLeft)
229 +
230 + def GoDiagonalRight(self) :
231 + _dialog = dialog.Dialog(self)
232 + _dialog.show()
233 + pixmap = QPixmap("ui\image_practice\diagonal_right (2)") #이미지 생성
234 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
235 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측 아래로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
236 + _dialog.pButton_drone.clicked.connect(drone.Move_DiagonalRight)
237 +
238 + def GoCurveLeft(self) :
239 + _dialog = dialog.Dialog(self)
240 + _dialog.show()
241 + pixmap = QPixmap("ui\image_practice\curve_left (2)") #이미지 생성
242 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
243 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>좌측으로 호를 그립니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
244 + _dialog.pButton_drone.clicked.connect(drone.Move_CurveLeft)
245 +
246 + def GoCurveRight(self) :
247 + _dialog = dialog.Dialog(self)
248 + _dialog.show()
249 + pixmap = QPixmap("ui\image_practice\curve_right (2)") #이미지 생성
250 + _dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
251 + _dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측으로 호를 그립니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
252 + _dialog.pButton_drone.clicked.connect(drone.Move_CurveRight)
253 +
254 + def GoMain(self) :
255 + self.close()
256 + firstWindow.show()
257 + firstWindow.statusBar().showMessage('Main', 3000)
258 +
259 + def GoStart(self) :
260 + self.close()
261 + startWindow = StartWindow(self)
262 + startWindow.show()
263 +
264 +class StrokeWindow(QMainWindow):
265 + def __init__(self, parent):
266 + super(StrokeWindow, self).__init__(parent)
267 + stroke_ui = 'ui\stroke.ui'
268 + uic.loadUi(stroke_ui, self)
269 +
270 + self.statusBar().showMessage('stroke', 3000)
271 + self.setWindowTitle('Calligraphy Assist Program By Drone')
272 +
273 + self.show()
274 + self.ConnectButton()
275 +
276 + def ConnectButton(self) :
277 + self.pButton_Main.clicked.connect(self.GoMain)
278 + self.pButton_Start.clicked.connect(self.GoStart)
279 + self.pButton_s_m.clicked.connect(self.GoSoftToMid)
280 + self.pButton_s_h.clicked.connect(self.GoSoftToHard)
281 + self.pButton_m_m.clicked.connect(self.GoMidToMid)
282 + self.pButton_h_s.clicked.connect(self.GoHardToSoft)
283 + self.pButton_h_m.clicked.connect(self.GoHardToMid)
284 + self.pButton_h_h.clicked.connect(self.GoHardToHard)
285 +
286 + def GoSoftToMid(self) :
287 + strokeDialog = dialog.Dialog(self)
288 + strokeDialog.show()
289 + pixmap = QPixmap("ui\image_stroke\s_m (2)") #이미지 생성
290 + strokeDialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
291 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;") #라벨 테두리 변경
292 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8)) #폰트 변경
293 + strokeDialog.text_0.setText("붓을 살짝 놓습니다.<br>획을 서서히 늘려갑니다.<br>마무리 시<br>붓 각도를 세운 후<br>느긋히 뗍니다.") #라벨에 텍스트추가
294 + strokeDialog.pButton_drone.clicked.connect(drone.Move_SoftToMid)
295 +
296 + def GoSoftToHard(self) :
297 + strokeDialog = dialog.Dialog(self)
298 + strokeDialog.show()
299 + pixmap = QPixmap("ui\image_stroke\s_h (2)")
300 + strokeDialog.image_0.setPixmap(QPixmap(pixmap))
301 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
302 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
303 + strokeDialog.text_0.setText("붓의 살짝 놓습니다.<br>획을 서서히 늘려갑니다.<br>마무리 시<br>끝 부분에 자연스럽게<br>붓 모양을 내고 뗍니다.")
304 + strokeDialog.pButton_drone.clicked.connect(drone.Move_SoftToHard)
305 +
306 + def GoMidToMid(self) :
307 + strokeDialog = dialog.Dialog(self)
308 + strokeDialog.show()
309 + pixmap = QPixmap("ui\image_stroke\m_m (2)")
310 + strokeDialog.image_0.setPixmap(QPixmap(pixmap))
311 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
312 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
313 + strokeDialog.text_0.setText("붓을 수직으로<br>천천히 놓고<br>면적을 넓혔다 줄입니다.<br>마무리 시 붓을 세워서<br> 천천히 뗍니다.")
314 + strokeDialog.pButton_drone.clicked.connect(drone.Move_MidToMid)
315 +
316 + def GoHardToSoft(self) :
317 + strokeDialog = dialog.Dialog(self)
318 + strokeDialog.show()
319 + pixmap = QPixmap("ui\image_stroke\h_s (2)")
320 + strokeDialog.image_0.setPixmap(QPixmap(pixmap))
321 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
322 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
323 + strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br> 점점 가늘어지다가 <br>마무리 시 붓을 <br>가볍게 뗍니다.")
324 + strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToSoft)
325 +
326 + def GoHardToMid(self) :
327 + strokeDialog = dialog.Dialog(self)
328 + strokeDialog.show()
329 + pixmap = QPixmap("ui\image_stroke\h_m (2)")
330 + strokeDialog.image_0.setPixmap(QPixmap(pixmap))
331 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
332 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
333 + strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br>마무리 시 붓을 세워서<br>천천히 뗍니다.")
334 + strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToMid)
335 +
336 + def GoHardToHard(self) :
337 + strokeDialog = dialog.Dialog(self)
338 + strokeDialog.show()
339 + pixmap = QPixmap("ui\image_stroke\h_h (2)")
340 + strokeDialog.image_0.setPixmap(QPixmap(pixmap))
341 + strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
342 + strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
343 + strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br>끝 부분에 자연스럽게<br>붓 모양을 내고 뗍니다.")
344 + strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToHard)
345 +
346 + def GoMain(self) :
347 + self.close()
348 + firstWindow.show()
349 + firstWindow.statusBar().showMessage('Main', 3000)
350 +
351 + def GoStart(self) :
352 + self.close()
353 + startWindow = StartWindow(self)
354 + startWindow.show()
355 +
356 +class VowelsWindow(QMainWindow):
357 + def __init__(self, parent):
358 + super(VowelsWindow, self).__init__(parent)
359 + vowels_ui = 'ui\Vowels.ui'
360 + uic.loadUi(vowels_ui, self)
361 +
362 + self.statusBar().showMessage('vowels', 3000)
363 + self.setWindowTitle('Calligraphy Assist Program By Drone')
364 +
365 + self.show()
366 + self.ConnectButton()
367 +
368 + def ConnectButton(self) :
369 + self.pButton_Main.clicked.connect(self.GoMain)
370 + self.pButton_Start.clicked.connect(self.GoStart)
371 + self.pButton_a.clicked.connect(self.Go_A)
372 + self.pButton_ae.clicked.connect(self.Go_Ae)
373 + self.pButton_e.clicked.connect(self.Go_E)
374 + self.pButton_eo.clicked.connect(self.Go_Eo)
375 + self.pButton_eu.clicked.connect(self.Go_Eu)
376 + self.pButton_i.clicked.connect(self.Go_I)
377 + self.pButton_o.clicked.connect(self.Go_O)
378 + self.pButton_oe.clicked.connect(self.Go_Oe)
379 + self.pButton_u.clicked.connect(self.Go_U)
380 + self.pButton_ui.clicked.connect(self.Go_Ui)
381 + self.pButton_wa.clicked.connect(self.Go_Wa)
382 + self.pButton_wae.clicked.connect(self.Go_Wae)
383 + self.pButton_we.clicked.connect(self.Go_We)
384 + self.pButton_wi.clicked.connect(self.Go_Wi)
385 + self.pButton_wo.clicked.connect(self.Go_Wo)
386 + self.pButton_ya.clicked.connect(self.Go_Ya)
387 + self.pButton_yae.clicked.connect(self.Go_Yae)
388 + self.pButton_ye.clicked.connect(self.Go_Ye)
389 + self.pButton_yeo.clicked.connect(self.Go_Yeo)
390 + self.pButton_yo.clicked.connect(self.Go_Yo)
391 + self.pButton_yu.clicked.connect(self.Go_Yu)
392 +
393 + #'ㅏ'
394 + def Go_A(self):
395 + _dialog = dialog.Dialog(self)
396 + _dialog.show()
397 + pixmap = QPixmap("ui\image_vowels\_a\_a_1")
398 + _dialog.image_0.setPixmap(QPixmap(pixmap))
399 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
400 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
401 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
402 + pixmap = QPixmap("ui\image_vowels\_a\_a_2")
403 + _dialog.image_1.setPixmap(QPixmap(pixmap))
404 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
405 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
406 + _dialog.text_1.setText("서서 -> 강조,<br> 우측으로 짧게")
407 + _dialog.pButton_drone.clicked.connect(drone.Move_A)
408 + #'ㅐ'
409 + def Go_Ae(self):
410 + _dialog = dialog.Dialog(self)
411 + _dialog.show()
412 + pixmap = QPixmap("ui\image_vowels\_ae\_ae_1")
413 + _dialog.image_0.setPixmap(QPixmap(pixmap))
414 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
415 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
416 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
417 + pixmap = QPixmap("ui\image_vowels\_ae\_ae_2")
418 + _dialog.image_1.setPixmap(QPixmap(pixmap))
419 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
420 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
421 + _dialog.text_1.setText("서서 -> 강조,<br> 우측으로 ")
422 + pixmap = QPixmap("ui\image_vowels\_ae\_ae_3")
423 + _dialog.image_2.setPixmap(QPixmap(pixmap))
424 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
425 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
426 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
427 + _dialog.pButton_drone.clicked.connect(drone.Move_Ae)
428 + #'ㅔ'
429 + def Go_E(self):
430 + _dialog = dialog.Dialog(self)
431 + _dialog.show()
432 + pixmap = QPixmap("ui\image_vowels\_e\_e_1")
433 + _dialog.image_0.setPixmap(QPixmap(pixmap))
434 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
435 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
436 + _dialog.text_0.setText("강조 -> 서서,<br> 우측으로 짧게")
437 + pixmap = QPixmap("ui\image_vowels\_e\_e_2")
438 + _dialog.image_1.setPixmap(QPixmap(pixmap))
439 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
440 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
441 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
442 + pixmap = QPixmap("ui\image_vowels\_e\_e_3")
443 + _dialog.image_2.setPixmap(QPixmap(pixmap))
444 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
445 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
446 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
447 + _dialog.pButton_drone.clicked.connect(drone.Move_E)
448 + #'ㅓ'
449 + def Go_Eo(self):
450 + _dialog = dialog.Dialog(self)
451 + _dialog.show()
452 + pixmap = QPixmap("ui\image_vowels\_eo\_eo_1")
453 + _dialog.image_0.setPixmap(QPixmap(pixmap))
454 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
455 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
456 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
457 + pixmap = QPixmap("ui\image_vowels\_eo\_eo_2")
458 + _dialog.image_1.setPixmap(QPixmap(pixmap))
459 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
460 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
461 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
462 + _dialog.pButton_drone.clicked.connect(drone.Move_Eo)
463 + #'ㅡ'
464 + def Go_Eu(self):
465 + _dialog = dialog.Dialog(self)
466 + _dialog.show()
467 + pixmap = QPixmap("ui\image_vowels\_eu\_eu_1")
468 + _dialog.image_0.setPixmap(QPixmap(pixmap))
469 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
470 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
471 + _dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
472 + _dialog.pButton_drone.clicked.connect(drone.Move_Eu)
473 + #'ㅣ'
474 + def Go_I(self):
475 + _dialog = dialog.Dialog(self)
476 + _dialog.show()
477 + pixmap = QPixmap("ui\image_vowels\_i\_i_1")
478 + _dialog.image_0.setPixmap(QPixmap(pixmap))
479 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
480 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
481 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
482 + _dialog.pButton_drone.clicked.connect(drone.Move_I)
483 + #'ㅗ'
484 + def Go_O(self):
485 + _dialog = dialog.Dialog(self)
486 + _dialog.show()
487 + pixmap = QPixmap("ui\image_vowels\_o\_o_1")
488 + _dialog.image_0.setPixmap(QPixmap(pixmap))
489 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
490 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
491 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
492 + pixmap = QPixmap("ui\image_vowels\_o\_o_2")
493 + _dialog.image_1.setPixmap(QPixmap(pixmap))
494 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
495 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
496 + _dialog.text_1.setText("강조 -> 강조 <br> 우측으로")
497 + _dialog.pButton_drone.clicked.connect(drone.Move_O)
498 + #'ㅚ'
499 + def Go_Oe(self):
500 + _dialog = dialog.Dialog(self)
501 + _dialog.show()
502 + pixmap = QPixmap("ui\image_vowels\_oe\_oe_1")
503 + _dialog.image_0.setPixmap(QPixmap(pixmap))
504 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
505 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
506 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
507 + pixmap = QPixmap("ui\image_vowels\_oe\_oe_2")
508 + _dialog.image_1.setPixmap(QPixmap(pixmap))
509 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
510 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
511 + _dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
512 + pixmap = QPixmap("ui\image_vowels\_oe\_oe_3")
513 + _dialog.image_2.setPixmap(QPixmap(pixmap))
514 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
515 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
516 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
517 + _dialog.pButton_drone.clicked.connect(drone.Move_Oe)
518 + #'ㅜ'
519 + def Go_U(self):
520 + _dialog = dialog.Dialog(self)
521 + _dialog.show()
522 + pixmap = QPixmap("ui\image_vowels\_u\_u_1")
523 + _dialog.image_0.setPixmap(QPixmap(pixmap))
524 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
525 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
526 + _dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
527 + pixmap = QPixmap("ui\image_vowels\_u\_u_2")
528 + _dialog.image_1.setPixmap(QPixmap(pixmap))
529 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
530 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
531 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
532 + _dialog.pButton_drone.clicked.connect(drone.Move_U)
533 + #'ㅢ'
534 + def Go_Ui(self):
535 + _dialog = dialog.Dialog(self)
536 + _dialog.show()
537 + pixmap = QPixmap("ui\image_vowels\_ui\_ui_1")
538 + _dialog.image_0.setPixmap(QPixmap(pixmap))
539 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
540 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
541 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
542 + pixmap = QPixmap("ui\image_vowels\_ui\_ui_2")
543 + _dialog.image_1.setPixmap(QPixmap(pixmap))
544 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
545 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
546 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
547 + _dialog.pButton_drone.clicked.connect(drone.Move_Ui)
548 + #'ㅘ'
549 + def Go_Wa(self):
550 + _dialog = dialog.Dialog(self)
551 + _dialog.show()
552 + pixmap = QPixmap("ui\image_vowels\_wa\_wa_1")
553 + _dialog.image_0.setPixmap(QPixmap(pixmap))
554 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
555 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
556 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
557 + pixmap = QPixmap("ui\image_vowels\_wa\_wa_2")
558 + _dialog.image_1.setPixmap(QPixmap(pixmap))
559 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
560 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
561 + _dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
562 + pixmap = QPixmap("ui\image_vowels\_wa\_wa_3")
563 + _dialog.image_2.setPixmap(QPixmap(pixmap))
564 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
565 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
566 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
567 + pixmap = QPixmap("ui\image_vowels\_wa\_wa_4")
568 + _dialog.image_3.setPixmap(QPixmap(pixmap))
569 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
570 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
571 + _dialog.text_3.setText("서서 -> 강조 <br> 우측으로 짧게")
572 + _dialog.pButton_drone.clicked.connect(drone.Move_Wa)
573 + #'ㅙ'
574 + def Go_Wae(self):
575 + _dialog = dialog.Dialog(self)
576 + _dialog.show()
577 + pixmap = QPixmap("ui\image_vowels\_wae\_wae_1")
578 + _dialog.image_0.setPixmap(QPixmap(pixmap))
579 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
580 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
581 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
582 + pixmap = QPixmap("ui\image_vowels\_wae\_wae_2")
583 + _dialog.image_1.setPixmap(QPixmap(pixmap))
584 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
585 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
586 + _dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
587 + pixmap = QPixmap("ui\image_vowels\_wae\_wae_3")
588 + _dialog.image_2.setPixmap(QPixmap(pixmap))
589 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
590 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
591 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
592 + pixmap = QPixmap("ui\image_vowels\_wae\_wae_4")
593 + _dialog.image_3.setPixmap(QPixmap(pixmap))
594 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
595 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
596 + _dialog.text_3.setText("강조 -> 서서,<br> 아래측으로 길게")
597 + pixmap = QPixmap("ui\image_vowels\_wae\_wae_5")
598 + _dialog.image_4.setPixmap(QPixmap(pixmap))
599 + _dialog.image_4.setStyleSheet("border: 1px solid black;")
600 + _dialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
601 + _dialog.text_4.setText("서서 -> 강조 <br> 우측으로 짧게")
602 + _dialog.pButton_drone.clicked.connect(drone.Move_Wae)
603 + #'ㅞ'
604 + def Go_We(self):
605 + _dialog = dialog.Dialog(self)
606 + _dialog.show()
607 + pixmap = QPixmap("ui\image_vowels\_we\_we_1")
608 + _dialog.image_0.setPixmap(QPixmap(pixmap))
609 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
610 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
611 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
612 + pixmap = QPixmap("ui\image_vowels\_we\_we_2")
613 + _dialog.image_1.setPixmap(QPixmap(pixmap))
614 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
615 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
616 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
617 + pixmap = QPixmap("ui\image_vowels\_we\_we_3")
618 + _dialog.image_2.setPixmap(QPixmap(pixmap))
619 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
620 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
621 + _dialog.text_2.setText("강조 -> 서서 <br> 우측으로 짧게")
622 + pixmap = QPixmap("ui\image_vowels\_we\_we_4")
623 + _dialog.image_3.setPixmap(QPixmap(pixmap))
624 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
625 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
626 + _dialog.text_3.setText("강조 -> 서서,<br> 아래측으로")
627 + pixmap = QPixmap("ui\image_vowels\_we\_we_5")
628 + _dialog.image_4.setPixmap(QPixmap(pixmap))
629 + _dialog.image_4.setStyleSheet("border: 1px solid black;")
630 + _dialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
631 + _dialog.text_4.setText("강조 -> 서서,<br> 아래측으로 길게")
632 + _dialog.pButton_drone.clicked.connect(drone.Move_We)
633 + #'ㅟ'
634 + def Go_Wi(self):
635 + _dialog = dialog.Dialog(self)
636 + _dialog.show()
637 + pixmap = QPixmap("ui\image_vowels\_wi\_wi_1")
638 + _dialog.image_0.setPixmap(QPixmap(pixmap))
639 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
640 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
641 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
642 + pixmap = QPixmap("ui\image_vowels\_wi\_wi_2")
643 + _dialog.image_1.setPixmap(QPixmap(pixmap))
644 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
645 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
646 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
647 + pixmap = QPixmap("ui\image_vowels\_wi\_wi_3")
648 + _dialog.image_2.setPixmap(QPixmap(pixmap))
649 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
650 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
651 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
652 + _dialog.pButton_drone.clicked.connect(drone.Move_Wi)
653 + #'ㅝ'
654 + def Go_Wo(self):
655 + _dialog = dialog.Dialog(self)
656 + _dialog.show()
657 + pixmap = QPixmap("ui\image_vowels\_wo\_wo_1")
658 + _dialog.image_0.setPixmap(QPixmap(pixmap))
659 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
660 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
661 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
662 + pixmap = QPixmap("ui\image_vowels\_wo\_wo_2")
663 + _dialog.image_1.setPixmap(QPixmap(pixmap))
664 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
665 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
666 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
667 + pixmap = QPixmap("ui\image_vowels\_wo\_wo_3")
668 + _dialog.image_2.setPixmap(QPixmap(pixmap))
669 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
670 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
671 + _dialog.text_2.setText("강조 -> 서서 <br> 우측으로 짧게")
672 + pixmap = QPixmap("ui\image_vowels\_wo\_wo_4")
673 + _dialog.image_3.setPixmap(QPixmap(pixmap))
674 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
675 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
676 + _dialog.text_3.setText("강조 -> 서서,<br> 아래측으로")
677 + _dialog.pButton_drone.clicked.connect(drone.Move_Wo)
678 + #'ㅑ'
679 + def Go_Ya(self):
680 + _dialog = dialog.Dialog(self)
681 + _dialog.show()
682 + pixmap = QPixmap("ui\image_vowels\_ya\_ya_1")
683 + _dialog.image_0.setPixmap(QPixmap(pixmap))
684 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
685 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
686 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
687 + pixmap = QPixmap("ui\image_vowels\_ya\_ya_2")
688 + _dialog.image_1.setPixmap(QPixmap(pixmap))
689 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
690 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
691 + _dialog.text_1.setText("서서 -> 강조 <br> 우측으로 짧게")
692 + pixmap = QPixmap("ui\image_vowels\_ya\_ya_3")
693 + _dialog.image_2.setPixmap(QPixmap(pixmap))
694 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
695 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
696 + _dialog.text_2.setText("서서 -> 강조 <br> 우측으로 짧게")
697 + _dialog.pButton_drone.clicked.connect(drone.Move_Ya)
698 + #'ㅒ'
699 + def Go_Yae(self):
700 + _dialog = dialog.Dialog(self)
701 + _dialog.show()
702 + pixmap = QPixmap("ui\image_vowels\_yae\_yae_1")
703 + _dialog.image_0.setPixmap(QPixmap(pixmap))
704 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
705 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
706 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
707 + pixmap = QPixmap("ui\image_vowels\_yae\_yae_2")
708 + _dialog.image_1.setPixmap(QPixmap(pixmap))
709 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
710 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
711 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 조금<br> 더 길게")
712 + pixmap = QPixmap("ui\image_vowels\_yae\_yae_3")
713 + _dialog.image_2.setPixmap(QPixmap(pixmap))
714 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
715 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
716 + _dialog.text_2.setText("서서 -> 강조 <br> 우측으로 짧게")
717 + pixmap = QPixmap("ui\image_vowels\_yae\_yae_4")
718 + _dialog.image_3.setPixmap(QPixmap(pixmap))
719 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
720 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
721 + _dialog.text_3.setText("서서 -> 강조 <br> 우측으로 짧게")
722 + _dialog.pButton_drone.clicked.connect(drone.Move_Yae)
723 + #'ㅖ'
724 + def Go_Ye(self):
725 + _dialog = dialog.Dialog(self)
726 + _dialog.show()
727 + pixmap = QPixmap("ui\image_vowels\_ye\_ye_1")
728 + _dialog.image_0.setPixmap(QPixmap(pixmap))
729 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
730 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
731 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
732 + pixmap = QPixmap("ui\image_vowels\_ye\_ye_2")
733 + _dialog.image_1.setPixmap(QPixmap(pixmap))
734 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
735 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
736 + _dialog.text_1.setText("강조 -> 서서 <br> 우측으로 짧게")
737 + pixmap = QPixmap("ui\image_vowels\_ye\_ye_3")
738 + _dialog.image_2.setPixmap(QPixmap(pixmap))
739 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
740 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
741 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
742 + pixmap = QPixmap("ui\image_vowels\_ye\_ye_4")
743 + _dialog.image_3.setPixmap(QPixmap(pixmap))
744 + _dialog.image_3.setStyleSheet("border: 1px solid black;")
745 + _dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
746 + _dialog.text_3.setText("강조 -> 서서,<br> 아래측으로 조금 <br>더 길게")
747 + _dialog.pButton_drone.clicked.connect(drone.Move_Ye)
748 + #'ㅕ'
749 + def Go_Yeo(self):
750 + _dialog = dialog.Dialog(self)
751 + _dialog.show()
752 + pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_1")
753 + _dialog.image_0.setPixmap(QPixmap(pixmap))
754 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
755 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
756 + _dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
757 + pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_2")
758 + _dialog.image_1.setPixmap(QPixmap(pixmap))
759 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
760 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
761 + _dialog.text_1.setText("강조 -> 서서 <br> 우측으로 짧게")
762 + pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_3")
763 + _dialog.image_2.setPixmap(QPixmap(pixmap))
764 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
765 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
766 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
767 + _dialog.pButton_drone.clicked.connect(drone.Move_Yeo)
768 + #'ㅛ'
769 + def Go_Yo(self):
770 + _dialog = dialog.Dialog(self)
771 + _dialog.show()
772 + pixmap = QPixmap("ui\image_vowels\_yo\_yo_1")
773 + _dialog.image_0.setPixmap(QPixmap(pixmap))
774 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
775 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
776 + _dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
777 + pixmap = QPixmap("ui\image_vowels\_yo\_yo_2")
778 + _dialog.image_1.setPixmap(QPixmap(pixmap))
779 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
780 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
781 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
782 + pixmap = QPixmap("ui\image_vowels\_yo\_yo_3")
783 + _dialog.image_2.setPixmap(QPixmap(pixmap))
784 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
785 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
786 + _dialog.text_2.setText("강조 -> 강조 <br> 우측으로")
787 + _dialog.pButton_drone.clicked.connect(drone.Move_Yo)
788 + #'ㅠ'
789 + def Go_Yu(self):
790 + _dialog = dialog.Dialog(self)
791 + _dialog.show()
792 + pixmap = QPixmap("ui\image_vowels\_yu\_yu_1")
793 + _dialog.image_0.setPixmap(QPixmap(pixmap))
794 + _dialog.image_0.setStyleSheet("border: 1px solid black;")
795 + _dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
796 + _dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
797 + pixmap = QPixmap("ui\image_vowels\_yu\_yu_2")
798 + _dialog.image_1.setPixmap(QPixmap(pixmap))
799 + _dialog.image_1.setStyleSheet("border: 1px solid black;")
800 + _dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
801 + _dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
802 + pixmap = QPixmap("ui\image_vowels\_yu\_yu_3")
803 + _dialog.image_2.setPixmap(QPixmap(pixmap))
804 + _dialog.image_2.setStyleSheet("border: 1px solid black;")
805 + _dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
806 + _dialog.text_2.setText("강조 -> 서서,<br> 아래측으로 짧게")
807 + _dialog.pButton_drone.clicked.connect(drone.Move_Yu)
808 +
809 + def GoMain(self) :
810 + self.close()
811 + firstWindow.show()
812 + firstWindow.statusBar().showMessage('Main', 3000)
813 +
814 + def GoStart(self) :
815 + self.close()
816 + startWindow = StartWindow(self)
817 + startWindow.show()
818 +
819 +class ConsonantsWindow(QMainWindow):
820 + def __init__(self, parent):
821 + super(ConsonantsWindow, self).__init__(parent)
822 + consonants_ui = 'ui\consonants.ui'
823 + uic.loadUi(consonants_ui, self)
824 +
825 + self.statusBar().showMessage('Consonants', 3000)
826 + self.setWindowTitle('Calligraphy Assist Program By Drone')
827 +
828 + self.show()
829 + self.ConnectButton()
830 +
831 +
832 + def ConnectButton(self) :
833 + self.pButton_Main.clicked.connect(self.GoMain)
834 + self.pButton_Start.clicked.connect(self.GoStart)
835 + self.pButton_g.clicked.connect(self.Go_G)
836 + self.pButton_k.clicked.connect(self.Go_K)
837 + self.pButton_n.clicked.connect(self.Go_N)
838 + self.pButton_d.clicked.connect(self.Go_D)
839 + self.pButton_t.clicked.connect(self.Go_T)
840 + self.pButton_l.clicked.connect(self.Go_L)
841 + self.pButton_m.clicked.connect(self.Go_M)
842 + self.pButton_b.clicked.connect(self.Go_B)
843 + self.pButton_p.clicked.connect(self.Go_P)
844 + self.pButton_s.clicked.connect(self.Go_S)
845 + self.pButton_j.clicked.connect(self.Go_J)
846 + self.pButton_ch.clicked.connect(self.Go_Ch)
847 + self.pButton_ng.clicked.connect(self.Go_Ng)
848 + self.pButton_h.clicked.connect(self.Go_H)
849 +
850 + def Go_G(self) :
851 + gDialog = dialog.Consonant_G_Dialog(self)
852 + gDialog.show()
853 +
854 + def Go_K(self) :
855 + gDialog = dialog.Consonant_K_Dialog(self)
856 + gDialog.show()
857 +
858 + def Go_N(self) :
859 + gDialog = dialog.Consonant_N_Dialog(self)
860 + gDialog.show()
861 +
862 + def Go_D(self) :
863 + gDialog = dialog.Consonant_D_Dialog(self)
864 + gDialog.show()
865 +
866 + def Go_T(self) :
867 + gDialog = dialog.Consonant_T_Dialog(self)
868 + gDialog.show()
869 +
870 + def Go_L(self) :
871 + gDialog = dialog.Consonant_L_Dialog(self)
872 + gDialog.show()
873 +
874 + def Go_M(self) :
875 + gDialog = dialog.Consonant_M_Dialog(self)
876 + gDialog.show()
877 +
878 + def Go_B(self) :
879 + gDialog = dialog.Consonant_B_Dialog(self)
880 + gDialog.show()
881 +
882 + def Go_P(self) :
883 + gDialog = dialog.Consonant_P_Dialog(self)
884 + gDialog.show()
885 +
886 + def Go_S(self) :
887 + gDialog = dialog.Consonant_S_Dialog(self)
888 + gDialog.show()
889 +
890 + def Go_J(self) :
891 + gDialog = dialog.Consonant_J_Dialog(self)
892 + gDialog.show()
893 +
894 + def Go_Ch(self) :
895 + gDialog = dialog.Consonant_Ch_Dialog(self)
896 + gDialog.show()
897 +
898 + def Go_Ng(self) :
899 + gDialog = dialog.Consonant_Ng_Dialog(self)
900 + gDialog.show()
901 +
902 + def Go_H(self) :
903 + gDialog = dialog.Consonant_H_Dialog(self)
904 + gDialog.show()
905 +
906 + def GoMain(self) :
907 + self.close()
908 + firstWindow.show()
909 + firstWindow.statusBar().showMessage('Main', 3000)
910 +
911 + def GoStart(self) :
912 + self.close()
913 + startWindow = StartWindow(self)
914 + startWindow.show()
915 +
916 +class StartWindow(QMainWindow):
917 + def __init__(self, parent):
918 + super(StartWindow, self).__init__(parent)
919 + start_ui = 'ui\start.ui'
920 + uic.loadUi(start_ui, self)
921 +
922 + self.statusBar().showMessage('Start', 3000)
923 + self.setWindowTitle('Calligraphy Assist Program By Drone')
924 + self.show()
925 + self.pButton_Main.clicked.connect(self.GoMain)
926 + self.pButton_0.clicked.connect(self.GoCharateristic)
927 + self.pButton_1.clicked.connect(self.GoIntroduction)
928 + self.pButton_2.clicked.connect(self.GoPractice)
929 + self.pButton_3.clicked.connect(self.GoStroke)
930 + self.pButton_4.clicked.connect(self.GoConsonants)
931 + self.pButton_5.clicked.connect(self.GoVowels)
932 +
933 + def GoCharateristic(self) :
934 + self.hide()
935 + characteristicWindow = CharacteristicWindow(self)
936 + characteristicWindow.show()
937 +
938 + def GoIntroduction(self) :
939 + self.hide()
940 + introWindow = IntroWindow(self)
941 + introWindow.show()
942 +
943 + def GoPractice(self) :
944 + self.hide()
945 + practiceWindow = PracticeWindow(self)
946 + practiceWindow.show()
947 +
948 + def GoStroke(self) :
949 + self.hide()
950 + strokeWindow = StrokeWindow(self)
951 + strokeWindow.show()
952 +
953 + def GoVowels(self) :
954 + self.hide()
955 + vowelWindow = VowelsWindow(self)
956 + vowelWindow.show()
957 +
958 + def GoConsonants(self) :
959 + self.hide()
960 + consonantsWindow = ConsonantsWindow(self)
961 + consonantsWindow.show()
962 +
963 + def GoMain(self) :
964 + self.hide()
965 + firstWindow.show()
966 + firstWindow.statusBar().showMessage('Main', 3000)
967 +
968 +class InfoWindow(QMainWindow):
969 + def __init__(self, parent):
970 + super(InfoWindow, self).__init__(parent)
971 + info_ui = 'ui\info.ui'
972 + uic.loadUi(info_ui, self)
973 + self.show()
974 + self.statusBar().showMessage('Info', 3000)
975 + self.setWindowTitle('Calligraphy Assist Program By Drone')
976 + self.pButton_Main.clicked.connect(self.GoMain)
977 +
978 + def GoMain(self) :
979 + self.close()
980 + firstWindow.show()
981 + firstWindow.statusBar().showMessage('Main', 3000)
982 +
983 +class StatusWindow(QMainWindow):
984 + def __init__(self, parent):
985 + super(StatusWindow, self).__init__(parent)
986 + status_ui = 'ui\status.ui'
987 + uic.loadUi(status_ui, self)
988 + self.show()
989 + self.statusBar().showMessage('Status', 3000)
990 + self.setWindowTitle('Calligraphy Assist Program By Drone')
991 + self.pButton_Check.clicked.connect(self.Check)
992 + self.pButton_Main.clicked.connect(self.GoMain)
993 +
994 + def Check(self) :
995 + self.tBrowser.clear()
996 + sleep(10)
997 + self.tBrowser.append('드론의 연결 상태를 체크합니다.')
998 + sleep(10)
999 + self.tBrowser.append("드론은 현재 통신 가능한 상태입니다.")
1000 + sleep(10)
1001 + self.tBrowser.append("확인을 종료합니다.")
1002 + sleep(10)
1003 +
1004 + def GoMain(self) :
1005 + self.hide()
1006 + firstWindow.statusBar().showMessage('Main', 3000)
1007 + firstWindow.show()
1008 +
1009 +
1010 +class MainWindow(QMainWindow, mainWindow_ui) :
1011 + def __init__(self) :
1012 + super().__init__()
1013 + self.setupUi(self)
1014 +
1015 + self.setWindowTitle('Calligraphy Assist Program By Drone')
1016 + self.setWindowIcon(QIcon('icon.png'))
1017 +
1018 + self.statusBar().showMessage('Main', 3000)
1019 + self.pButton_Start.clicked.connect(self.Start)
1020 + self.pButton_Info.clicked.connect(self.Info)
1021 + self.pButton_End.clicked.connect(self.End)
1022 +
1023 + def Start(self) :
1024 + self.hide()
1025 + window = StartWindow(self)
1026 + window.show()
1027 +
1028 + def Info(self) :
1029 + self.hide()
1030 + window = InfoWindow(self)
1031 + window.show()
1032 +
1033 + def End(self) :
1034 + sys.exit()
1035 +
1036 +
1037 +if __name__ == "__main__" :
1038 +
1039 + app = QApplication(sys.argv) #QApplication : 프로그램을 실행시켜주는 클래스
1040 + firstWindow = MainWindow() #WindowClass의 인스턴스 생성
1041 + firstWindow.show() #프로그램 화면을 보여주는 코드
1042 + app.exec_() #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>characteristic</class>
4 + <widget class="QMainWindow" name="characteristic">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>599</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>characteristic</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QFrame" name="outline">
31 + <property name="geometry">
32 + <rect>
33 + <x>10</x>
34 + <y>10</y>
35 + <width>781</width>
36 + <height>561</height>
37 + </rect>
38 + </property>
39 + <property name="font">
40 + <font>
41 + <family>HY궁서B</family>
42 + <pointsize>28</pointsize>
43 + </font>
44 + </property>
45 + <property name="layoutDirection">
46 + <enum>Qt::LeftToRight</enum>
47 + </property>
48 + <property name="frameShape">
49 + <enum>QFrame::StyledPanel</enum>
50 + </property>
51 + <property name="frameShadow">
52 + <enum>QFrame::Sunken</enum>
53 + </property>
54 + <widget class="QFrame" name="semiOutline_2">
55 + <property name="geometry">
56 + <rect>
57 + <x>40</x>
58 + <y>70</y>
59 + <width>701</width>
60 + <height>441</height>
61 + </rect>
62 + </property>
63 + <property name="frameShape">
64 + <enum>QFrame::Panel</enum>
65 + </property>
66 + <property name="frameShadow">
67 + <enum>QFrame::Sunken</enum>
68 + </property>
69 + <widget class="QTextBrowser" name="tBrowser">
70 + <property name="geometry">
71 + <rect>
72 + <x>10</x>
73 + <y>10</y>
74 + <width>681</width>
75 + <height>421</height>
76 + </rect>
77 + </property>
78 + </widget>
79 + </widget>
80 + <widget class="QLabel" name="label_2">
81 + <property name="geometry">
82 + <rect>
83 + <x>50</x>
84 + <y>40</y>
85 + <width>181</width>
86 + <height>16</height>
87 + </rect>
88 + </property>
89 + <property name="font">
90 + <font>
91 + <pointsize>12</pointsize>
92 + </font>
93 + </property>
94 + <property name="text">
95 + <string>Step 0 . - 한글의 특성</string>
96 + </property>
97 + </widget>
98 + <widget class="QFrame" name="frame_2">
99 + <property name="geometry">
100 + <rect>
101 + <x>40</x>
102 + <y>30</y>
103 + <width>191</width>
104 + <height>31</height>
105 + </rect>
106 + </property>
107 + <property name="frameShape">
108 + <enum>QFrame::Box</enum>
109 + </property>
110 + <property name="frameShadow">
111 + <enum>QFrame::Raised</enum>
112 + </property>
113 + </widget>
114 + <widget class="QPushButton" name="pButton_Start">
115 + <property name="geometry">
116 + <rect>
117 + <x>50</x>
118 + <y>0</y>
119 + <width>51</width>
120 + <height>23</height>
121 + </rect>
122 + </property>
123 + <property name="font">
124 + <font>
125 + <family>굴림</family>
126 + <pointsize>9</pointsize>
127 + </font>
128 + </property>
129 + <property name="text">
130 + <string>start</string>
131 + </property>
132 + </widget>
133 + <widget class="QPushButton" name="pButton_Next">
134 + <property name="geometry">
135 + <rect>
136 + <x>670</x>
137 + <y>520</y>
138 + <width>71</width>
139 + <height>31</height>
140 + </rect>
141 + </property>
142 + <property name="font">
143 + <font>
144 + <family>굴림</family>
145 + <pointsize>11</pointsize>
146 + </font>
147 + </property>
148 + <property name="text">
149 + <string>Next</string>
150 + </property>
151 + </widget>
152 + <zorder>frame_2</zorder>
153 + <zorder>semiOutline_2</zorder>
154 + <zorder>label_2</zorder>
155 + <zorder>pButton_Start</zorder>
156 + <zorder>pButton_Next</zorder>
157 + </widget>
158 + <zorder>outline</zorder>
159 + <zorder>pButton_Main</zorder>
160 + </widget>
161 + <widget class="QStatusBar" name="statusbar">
162 + <property name="layoutDirection">
163 + <enum>Qt::LeftToRight</enum>
164 + </property>
165 + </widget>
166 + </widget>
167 + <resources/>
168 + <connections/>
169 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>consonants</class>
4 + <widget class="QMainWindow" name="consonants">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>599</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>consonants</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QFrame" name="outline">
31 + <property name="geometry">
32 + <rect>
33 + <x>10</x>
34 + <y>10</y>
35 + <width>781</width>
36 + <height>561</height>
37 + </rect>
38 + </property>
39 + <property name="font">
40 + <font>
41 + <family>HY궁서B</family>
42 + <pointsize>28</pointsize>
43 + </font>
44 + </property>
45 + <property name="layoutDirection">
46 + <enum>Qt::LeftToRight</enum>
47 + </property>
48 + <property name="frameShape">
49 + <enum>QFrame::StyledPanel</enum>
50 + </property>
51 + <property name="frameShadow">
52 + <enum>QFrame::Sunken</enum>
53 + </property>
54 + <widget class="QFrame" name="box_11">
55 + <property name="geometry">
56 + <rect>
57 + <x>520</x>
58 + <y>270</y>
59 + <width>80</width>
60 + <height>80</height>
61 + </rect>
62 + </property>
63 + <property name="frameShape">
64 + <enum>QFrame::Box</enum>
65 + </property>
66 + <property name="frameShadow">
67 + <enum>QFrame::Raised</enum>
68 + </property>
69 + <widget class="QPushButton" name="pButton_pp">
70 + <property name="geometry">
71 + <rect>
72 + <x>10</x>
73 + <y>10</y>
74 + <width>60</width>
75 + <height>60</height>
76 + </rect>
77 + </property>
78 + <property name="text">
79 + <string></string>
80 + </property>
81 + </widget>
82 + </widget>
83 + <widget class="QFrame" name="box_15">
84 + <property name="geometry">
85 + <rect>
86 + <x>520</x>
87 + <y>360</y>
88 + <width>80</width>
89 + <height>80</height>
90 + </rect>
91 + </property>
92 + <property name="frameShape">
93 + <enum>QFrame::Box</enum>
94 + </property>
95 + <property name="frameShadow">
96 + <enum>QFrame::Raised</enum>
97 + </property>
98 + <widget class="QPushButton" name="pButton_ss">
99 + <property name="geometry">
100 + <rect>
101 + <x>10</x>
102 + <y>10</y>
103 + <width>60</width>
104 + <height>60</height>
105 + </rect>
106 + </property>
107 + <property name="text">
108 + <string></string>
109 + </property>
110 + </widget>
111 + </widget>
112 + <widget class="QFrame" name="box_16">
113 + <property name="geometry">
114 + <rect>
115 + <x>620</x>
116 + <y>360</y>
117 + <width>80</width>
118 + <height>80</height>
119 + </rect>
120 + </property>
121 + <property name="frameShape">
122 + <enum>QFrame::Box</enum>
123 + </property>
124 + <property name="frameShadow">
125 + <enum>QFrame::Raised</enum>
126 + </property>
127 + <widget class="QPushButton" name="pButton_jj">
128 + <property name="geometry">
129 + <rect>
130 + <x>10</x>
131 + <y>10</y>
132 + <width>60</width>
133 + <height>60</height>
134 + </rect>
135 + </property>
136 + <property name="text">
137 + <string></string>
138 + </property>
139 + </widget>
140 + </widget>
141 + <widget class="QFrame" name="box_7">
142 + <property name="geometry">
143 + <rect>
144 + <x>520</x>
145 + <y>180</y>
146 + <width>80</width>
147 + <height>80</height>
148 + </rect>
149 + </property>
150 + <property name="frameShape">
151 + <enum>QFrame::Box</enum>
152 + </property>
153 + <property name="frameShadow">
154 + <enum>QFrame::Raised</enum>
155 + </property>
156 + <widget class="QPushButton" name="pButton_tt">
157 + <property name="geometry">
158 + <rect>
159 + <x>10</x>
160 + <y>10</y>
161 + <width>60</width>
162 + <height>60</height>
163 + </rect>
164 + </property>
165 + <property name="text">
166 + <string></string>
167 + </property>
168 + </widget>
169 + </widget>
170 + <widget class="QFrame" name="box_2">
171 + <property name="geometry">
172 + <rect>
173 + <x>520</x>
174 + <y>90</y>
175 + <width>80</width>
176 + <height>80</height>
177 + </rect>
178 + </property>
179 + <property name="frameShape">
180 + <enum>QFrame::Box</enum>
181 + </property>
182 + <property name="frameShadow">
183 + <enum>QFrame::Raised</enum>
184 + </property>
185 + <widget class="QPushButton" name="pButton_kk">
186 + <property name="geometry">
187 + <rect>
188 + <x>10</x>
189 + <y>10</y>
190 + <width>60</width>
191 + <height>60</height>
192 + </rect>
193 + </property>
194 + <property name="text">
195 + <string></string>
196 + </property>
197 + </widget>
198 + </widget>
199 + <widget class="QFrame" name="semiOutline_1">
200 + <property name="geometry">
201 + <rect>
202 + <x>190</x>
203 + <y>80</y>
204 + <width>301</width>
205 + <height>461</height>
206 + </rect>
207 + </property>
208 + <property name="frameShape">
209 + <enum>QFrame::Panel</enum>
210 + </property>
211 + <property name="frameShadow">
212 + <enum>QFrame::Sunken</enum>
213 + </property>
214 + <widget class="QFrame" name="box_6">
215 + <property name="geometry">
216 + <rect>
217 + <x>210</x>
218 + <y>100</y>
219 + <width>80</width>
220 + <height>80</height>
221 + </rect>
222 + </property>
223 + <property name="frameShape">
224 + <enum>QFrame::Box</enum>
225 + </property>
226 + <property name="frameShadow">
227 + <enum>QFrame::Raised</enum>
228 + </property>
229 + <widget class="QPushButton" name="pButton_l">
230 + <property name="geometry">
231 + <rect>
232 + <x>10</x>
233 + <y>10</y>
234 + <width>60</width>
235 + <height>60</height>
236 + </rect>
237 + </property>
238 + <property name="text">
239 + <string></string>
240 + </property>
241 + </widget>
242 + </widget>
243 + <widget class="QFrame" name="box_5">
244 + <property name="geometry">
245 + <rect>
246 + <x>110</x>
247 + <y>100</y>
248 + <width>80</width>
249 + <height>80</height>
250 + </rect>
251 + </property>
252 + <property name="frameShape">
253 + <enum>QFrame::Box</enum>
254 + </property>
255 + <property name="frameShadow">
256 + <enum>QFrame::Raised</enum>
257 + </property>
258 + <widget class="QPushButton" name="pButton_t">
259 + <property name="geometry">
260 + <rect>
261 + <x>10</x>
262 + <y>10</y>
263 + <width>60</width>
264 + <height>60</height>
265 + </rect>
266 + </property>
267 + <property name="text">
268 + <string></string>
269 + </property>
270 + </widget>
271 + </widget>
272 + <widget class="QFrame" name="box_4">
273 + <property name="geometry">
274 + <rect>
275 + <x>10</x>
276 + <y>100</y>
277 + <width>80</width>
278 + <height>80</height>
279 + </rect>
280 + </property>
281 + <property name="frameShape">
282 + <enum>QFrame::Box</enum>
283 + </property>
284 + <property name="frameShadow">
285 + <enum>QFrame::Raised</enum>
286 + </property>
287 + <widget class="QPushButton" name="pButton_d">
288 + <property name="geometry">
289 + <rect>
290 + <x>10</x>
291 + <y>10</y>
292 + <width>60</width>
293 + <height>60</height>
294 + </rect>
295 + </property>
296 + <property name="text">
297 + <string></string>
298 + </property>
299 + </widget>
300 + </widget>
301 + <widget class="QFrame" name="box_13">
302 + <property name="geometry">
303 + <rect>
304 + <x>10</x>
305 + <y>280</y>
306 + <width>80</width>
307 + <height>80</height>
308 + </rect>
309 + </property>
310 + <property name="frameShape">
311 + <enum>QFrame::Box</enum>
312 + </property>
313 + <property name="frameShadow">
314 + <enum>QFrame::Raised</enum>
315 + </property>
316 + <widget class="QPushButton" name="pButton_j">
317 + <property name="geometry">
318 + <rect>
319 + <x>10</x>
320 + <y>10</y>
321 + <width>60</width>
322 + <height>60</height>
323 + </rect>
324 + </property>
325 + <property name="text">
326 + <string></string>
327 + </property>
328 + </widget>
329 + </widget>
330 + <widget class="QFrame" name="box_14">
331 + <property name="geometry">
332 + <rect>
333 + <x>110</x>
334 + <y>280</y>
335 + <width>80</width>
336 + <height>80</height>
337 + </rect>
338 + </property>
339 + <property name="frameShape">
340 + <enum>QFrame::Box</enum>
341 + </property>
342 + <property name="frameShadow">
343 + <enum>QFrame::Raised</enum>
344 + </property>
345 + <widget class="QPushButton" name="pButton_ch">
346 + <property name="geometry">
347 + <rect>
348 + <x>10</x>
349 + <y>10</y>
350 + <width>60</width>
351 + <height>60</height>
352 + </rect>
353 + </property>
354 + <property name="text">
355 + <string></string>
356 + </property>
357 + </widget>
358 + </widget>
359 + <widget class="QFrame" name="box_18">
360 + <property name="geometry">
361 + <rect>
362 + <x>10</x>
363 + <y>370</y>
364 + <width>80</width>
365 + <height>80</height>
366 + </rect>
367 + </property>
368 + <property name="frameShape">
369 + <enum>QFrame::Box</enum>
370 + </property>
371 + <property name="frameShadow">
372 + <enum>QFrame::Raised</enum>
373 + </property>
374 + <widget class="QPushButton" name="pButton_h">
375 + <property name="geometry">
376 + <rect>
377 + <x>10</x>
378 + <y>10</y>
379 + <width>60</width>
380 + <height>60</height>
381 + </rect>
382 + </property>
383 + <property name="text">
384 + <string></string>
385 + </property>
386 + </widget>
387 + </widget>
388 + <widget class="QFrame" name="box_1">
389 + <property name="geometry">
390 + <rect>
391 + <x>10</x>
392 + <y>10</y>
393 + <width>80</width>
394 + <height>80</height>
395 + </rect>
396 + </property>
397 + <property name="frameShape">
398 + <enum>QFrame::Box</enum>
399 + </property>
400 + <property name="frameShadow">
401 + <enum>QFrame::Raised</enum>
402 + </property>
403 + <widget class="QPushButton" name="pButton_k">
404 + <property name="geometry">
405 + <rect>
406 + <x>10</x>
407 + <y>10</y>
408 + <width>60</width>
409 + <height>60</height>
410 + </rect>
411 + </property>
412 + <property name="text">
413 + <string></string>
414 + </property>
415 + </widget>
416 + </widget>
417 + <widget class="QFrame" name="box_10">
418 + <property name="geometry">
419 + <rect>
420 + <x>110</x>
421 + <y>190</y>
422 + <width>80</width>
423 + <height>80</height>
424 + </rect>
425 + </property>
426 + <property name="frameShape">
427 + <enum>QFrame::Box</enum>
428 + </property>
429 + <property name="frameShadow">
430 + <enum>QFrame::Raised</enum>
431 + </property>
432 + <widget class="QPushButton" name="pButton_p">
433 + <property name="geometry">
434 + <rect>
435 + <x>10</x>
436 + <y>10</y>
437 + <width>60</width>
438 + <height>60</height>
439 + </rect>
440 + </property>
441 + <property name="text">
442 + <string></string>
443 + </property>
444 + </widget>
445 + </widget>
446 + <widget class="QFrame" name="box_9">
447 + <property name="geometry">
448 + <rect>
449 + <x>10</x>
450 + <y>190</y>
451 + <width>80</width>
452 + <height>80</height>
453 + </rect>
454 + </property>
455 + <property name="frameShape">
456 + <enum>QFrame::Box</enum>
457 + </property>
458 + <property name="frameShadow">
459 + <enum>QFrame::Raised</enum>
460 + </property>
461 + <widget class="QPushButton" name="pButton_b">
462 + <property name="geometry">
463 + <rect>
464 + <x>10</x>
465 + <y>10</y>
466 + <width>60</width>
467 + <height>60</height>
468 + </rect>
469 + </property>
470 + <property name="text">
471 + <string></string>
472 + </property>
473 + </widget>
474 + </widget>
475 + </widget>
476 + <widget class="QFrame" name="semiOutline_2">
477 + <property name="geometry">
478 + <rect>
479 + <x>510</x>
480 + <y>80</y>
481 + <width>201</width>
482 + <height>461</height>
483 + </rect>
484 + </property>
485 + <property name="frameShape">
486 + <enum>QFrame::Panel</enum>
487 + </property>
488 + <property name="frameShadow">
489 + <enum>QFrame::Sunken</enum>
490 + </property>
491 + </widget>
492 + <widget class="QLabel" name="label">
493 + <property name="geometry">
494 + <rect>
495 + <x>90</x>
496 + <y>50</y>
497 + <width>71</width>
498 + <height>16</height>
499 + </rect>
500 + </property>
501 + <property name="font">
502 + <font>
503 + <pointsize>12</pointsize>
504 + </font>
505 + </property>
506 + <property name="text">
507 + <string>기본자음</string>
508 + </property>
509 + </widget>
510 + <widget class="QFrame" name="frame">
511 + <property name="geometry">
512 + <rect>
513 + <x>80</x>
514 + <y>40</y>
515 + <width>81</width>
516 + <height>31</height>
517 + </rect>
518 + </property>
519 + <property name="frameShape">
520 + <enum>QFrame::Box</enum>
521 + </property>
522 + <property name="frameShadow">
523 + <enum>QFrame::Raised</enum>
524 + </property>
525 + </widget>
526 + <widget class="QLabel" name="label_2">
527 + <property name="geometry">
528 + <rect>
529 + <x>520</x>
530 + <y>50</y>
531 + <width>61</width>
532 + <height>16</height>
533 + </rect>
534 + </property>
535 + <property name="font">
536 + <font>
537 + <pointsize>12</pointsize>
538 + </font>
539 + </property>
540 + <property name="text">
541 + <string>겹자음</string>
542 + </property>
543 + </widget>
544 + <widget class="QFrame" name="frame_2">
545 + <property name="geometry">
546 + <rect>
547 + <x>510</x>
548 + <y>40</y>
549 + <width>71</width>
550 + <height>31</height>
551 + </rect>
552 + </property>
553 + <property name="frameShape">
554 + <enum>QFrame::Box</enum>
555 + </property>
556 + <property name="frameShadow">
557 + <enum>QFrame::Raised</enum>
558 + </property>
559 + </widget>
560 + <widget class="QPushButton" name="pButton_Start">
561 + <property name="geometry">
562 + <rect>
563 + <x>50</x>
564 + <y>0</y>
565 + <width>51</width>
566 + <height>23</height>
567 + </rect>
568 + </property>
569 + <property name="font">
570 + <font>
571 + <family>굴림</family>
572 + <pointsize>9</pointsize>
573 + </font>
574 + </property>
575 + <property name="text">
576 + <string>start</string>
577 + </property>
578 + </widget>
579 + <widget class="QFrame" name="frame_4">
580 + <property name="geometry">
581 + <rect>
582 + <x>70</x>
583 + <y>80</y>
584 + <width>101</width>
585 + <height>461</height>
586 + </rect>
587 + </property>
588 + <property name="frameShape">
589 + <enum>QFrame::Panel</enum>
590 + </property>
591 + <property name="frameShadow">
592 + <enum>QFrame::Sunken</enum>
593 + </property>
594 + <widget class="QFrame" name="box_8">
595 + <property name="geometry">
596 + <rect>
597 + <x>10</x>
598 + <y>190</y>
599 + <width>80</width>
600 + <height>80</height>
601 + </rect>
602 + </property>
603 + <property name="frameShape">
604 + <enum>QFrame::Box</enum>
605 + </property>
606 + <property name="frameShadow">
607 + <enum>QFrame::Raised</enum>
608 + </property>
609 + <widget class="QPushButton" name="pButton_m">
610 + <property name="geometry">
611 + <rect>
612 + <x>10</x>
613 + <y>10</y>
614 + <width>60</width>
615 + <height>60</height>
616 + </rect>
617 + </property>
618 + <property name="text">
619 + <string></string>
620 + </property>
621 + </widget>
622 + </widget>
623 + <widget class="QFrame" name="box_0">
624 + <property name="geometry">
625 + <rect>
626 + <x>10</x>
627 + <y>10</y>
628 + <width>80</width>
629 + <height>80</height>
630 + </rect>
631 + </property>
632 + <property name="frameShape">
633 + <enum>QFrame::Panel</enum>
634 + </property>
635 + <property name="frameShadow">
636 + <enum>QFrame::Raised</enum>
637 + </property>
638 + <widget class="QPushButton" name="pButton_g">
639 + <property name="geometry">
640 + <rect>
641 + <x>10</x>
642 + <y>10</y>
643 + <width>60</width>
644 + <height>60</height>
645 + </rect>
646 + </property>
647 + <property name="text">
648 + <string></string>
649 + </property>
650 + </widget>
651 + </widget>
652 + <widget class="QFrame" name="box_12">
653 + <property name="geometry">
654 + <rect>
655 + <x>10</x>
656 + <y>280</y>
657 + <width>80</width>
658 + <height>80</height>
659 + </rect>
660 + </property>
661 + <property name="frameShape">
662 + <enum>QFrame::Box</enum>
663 + </property>
664 + <property name="frameShadow">
665 + <enum>QFrame::Raised</enum>
666 + </property>
667 + <widget class="QPushButton" name="pButton_s">
668 + <property name="geometry">
669 + <rect>
670 + <x>10</x>
671 + <y>10</y>
672 + <width>60</width>
673 + <height>60</height>
674 + </rect>
675 + </property>
676 + <property name="text">
677 + <string></string>
678 + </property>
679 + </widget>
680 + </widget>
681 + <widget class="QFrame" name="frame_3">
682 + <property name="geometry">
683 + <rect>
684 + <x>10</x>
685 + <y>100</y>
686 + <width>80</width>
687 + <height>80</height>
688 + </rect>
689 + </property>
690 + <property name="frameShape">
691 + <enum>QFrame::Box</enum>
692 + </property>
693 + <property name="frameShadow">
694 + <enum>QFrame::Raised</enum>
695 + </property>
696 + <widget class="QPushButton" name="pButton_n">
697 + <property name="geometry">
698 + <rect>
699 + <x>10</x>
700 + <y>10</y>
701 + <width>60</width>
702 + <height>60</height>
703 + </rect>
704 + </property>
705 + <property name="text">
706 + <string></string>
707 + </property>
708 + </widget>
709 + </widget>
710 + <widget class="QFrame" name="box_17">
711 + <property name="geometry">
712 + <rect>
713 + <x>10</x>
714 + <y>370</y>
715 + <width>80</width>
716 + <height>80</height>
717 + </rect>
718 + </property>
719 + <property name="frameShape">
720 + <enum>QFrame::Box</enum>
721 + </property>
722 + <property name="frameShadow">
723 + <enum>QFrame::Raised</enum>
724 + </property>
725 + <widget class="QPushButton" name="pButton_ng">
726 + <property name="geometry">
727 + <rect>
728 + <x>10</x>
729 + <y>10</y>
730 + <width>60</width>
731 + <height>60</height>
732 + </rect>
733 + </property>
734 + <property name="text">
735 + <string></string>
736 + </property>
737 + </widget>
738 + </widget>
739 + </widget>
740 + <zorder>frame_2</zorder>
741 + <zorder>semiOutline_1</zorder>
742 + <zorder>frame</zorder>
743 + <zorder>semiOutline_2</zorder>
744 + <zorder>box_11</zorder>
745 + <zorder>box_15</zorder>
746 + <zorder>box_16</zorder>
747 + <zorder>box_7</zorder>
748 + <zorder>box_2</zorder>
749 + <zorder>label</zorder>
750 + <zorder>label_2</zorder>
751 + <zorder>pButton_Start</zorder>
752 + <zorder>frame_4</zorder>
753 + </widget>
754 + <zorder>outline</zorder>
755 + <zorder>pButton_Main</zorder>
756 + </widget>
757 + <widget class="QStatusBar" name="statusbar">
758 + <property name="layoutDirection">
759 + <enum>Qt::LeftToRight</enum>
760 + </property>
761 + </widget>
762 + </widget>
763 + <resources/>
764 + <connections/>
765 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>Dialog</class>
4 + <widget class="QDialog" name="Dialog">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>695</width>
10 + <height>441</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>Dialog</string>
15 + </property>
16 + <widget class="QTextBrowser" name="textBrowser">
17 + <property name="geometry">
18 + <rect>
19 + <x>160</x>
20 + <y>230</y>
21 + <width>511</width>
22 + <height>201</height>
23 + </rect>
24 + </property>
25 + <property name="html">
26 + <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
27 +&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
28 +p, li { white-space: pre-wrap; }
29 +&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Gulim'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
30 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;드론에는 LED가 두 가지 존재합니다.&lt;/p&gt;
31 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
32 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 본체 후면부 LED : 드론의 연결 상태를 나타냅니다.&lt;/p&gt;
33 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;LED 스트로브 : LED가 깜빡입니다. 드론이 연결이 되지 않았습니다.&lt;/p&gt;
34 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#00ff00;&quot;&gt;LED 점등 &lt;/span&gt; : LED가 점등됩니다. 드론이 연결되었습니다.&lt;/p&gt;
35 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
36 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 팔 &amp;amp; 본체 전면부 LED : &lt;/p&gt;
37 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;LED none : 입력을 대기중 입니다.&lt;/p&gt;
38 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#aa0000;&quot;&gt;LED RED &lt;/span&gt;: 다음 동작을 위해 3초 기다립니다.&lt;/p&gt;
39 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#0000ff;&quot;&gt;LED BLUE&lt;/span&gt; : 동작 중입니다.&lt;/p&gt;
40 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
41 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;좌측의 [드론 동작 버튼]을 눌러 실행해봅시다.&lt;/p&gt;
42 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
43 + </property>
44 + </widget>
45 + <widget class="QFrame" name="frame_0">
46 + <property name="geometry">
47 + <rect>
48 + <x>30</x>
49 + <y>20</y>
50 + <width>120</width>
51 + <height>201</height>
52 + </rect>
53 + </property>
54 + <property name="frameShape">
55 + <enum>QFrame::StyledPanel</enum>
56 + </property>
57 + <property name="frameShadow">
58 + <enum>QFrame::Raised</enum>
59 + </property>
60 + <widget class="QLabel" name="text_0">
61 + <property name="geometry">
62 + <rect>
63 + <x>0</x>
64 + <y>120</y>
65 + <width>121</width>
66 + <height>81</height>
67 + </rect>
68 + </property>
69 + <property name="font">
70 + <font>
71 + <family>Adobe Arabic</family>
72 + <pointsize>8</pointsize>
73 + </font>
74 + </property>
75 + <property name="text">
76 + <string/>
77 + </property>
78 + </widget>
79 + <widget class="QLabel" name="image_0">
80 + <property name="geometry">
81 + <rect>
82 + <x>10</x>
83 + <y>10</y>
84 + <width>100</width>
85 + <height>100</height>
86 + </rect>
87 + </property>
88 + <property name="frameShape">
89 + <enum>QFrame::NoFrame</enum>
90 + </property>
91 + <property name="frameShadow">
92 + <enum>QFrame::Plain</enum>
93 + </property>
94 + <property name="text">
95 + <string/>
96 + </property>
97 + <property name="scaledContents">
98 + <bool>true</bool>
99 + </property>
100 + </widget>
101 + </widget>
102 + <widget class="QFrame" name="frame_1">
103 + <property name="geometry">
104 + <rect>
105 + <x>160</x>
106 + <y>20</y>
107 + <width>120</width>
108 + <height>201</height>
109 + </rect>
110 + </property>
111 + <property name="frameShape">
112 + <enum>QFrame::StyledPanel</enum>
113 + </property>
114 + <property name="frameShadow">
115 + <enum>QFrame::Raised</enum>
116 + </property>
117 + <widget class="QLabel" name="text_1">
118 + <property name="geometry">
119 + <rect>
120 + <x>0</x>
121 + <y>120</y>
122 + <width>121</width>
123 + <height>81</height>
124 + </rect>
125 + </property>
126 + <property name="font">
127 + <font>
128 + <family>Adobe Arabic</family>
129 + <pointsize>8</pointsize>
130 + </font>
131 + </property>
132 + <property name="text">
133 + <string/>
134 + </property>
135 + </widget>
136 + <widget class="QLabel" name="image_1">
137 + <property name="geometry">
138 + <rect>
139 + <x>10</x>
140 + <y>10</y>
141 + <width>100</width>
142 + <height>100</height>
143 + </rect>
144 + </property>
145 + <property name="frameShape">
146 + <enum>QFrame::NoFrame</enum>
147 + </property>
148 + <property name="frameShadow">
149 + <enum>QFrame::Plain</enum>
150 + </property>
151 + <property name="text">
152 + <string/>
153 + </property>
154 + <property name="scaledContents">
155 + <bool>true</bool>
156 + </property>
157 + </widget>
158 + </widget>
159 + <widget class="QFrame" name="frame_2">
160 + <property name="geometry">
161 + <rect>
162 + <x>290</x>
163 + <y>20</y>
164 + <width>120</width>
165 + <height>201</height>
166 + </rect>
167 + </property>
168 + <property name="frameShape">
169 + <enum>QFrame::StyledPanel</enum>
170 + </property>
171 + <property name="frameShadow">
172 + <enum>QFrame::Raised</enum>
173 + </property>
174 + <widget class="QLabel" name="text_2">
175 + <property name="geometry">
176 + <rect>
177 + <x>0</x>
178 + <y>120</y>
179 + <width>121</width>
180 + <height>81</height>
181 + </rect>
182 + </property>
183 + <property name="font">
184 + <font>
185 + <family>Adobe Arabic</family>
186 + <pointsize>8</pointsize>
187 + </font>
188 + </property>
189 + <property name="text">
190 + <string/>
191 + </property>
192 + </widget>
193 + <widget class="QLabel" name="image_2">
194 + <property name="geometry">
195 + <rect>
196 + <x>10</x>
197 + <y>10</y>
198 + <width>100</width>
199 + <height>100</height>
200 + </rect>
201 + </property>
202 + <property name="frameShape">
203 + <enum>QFrame::NoFrame</enum>
204 + </property>
205 + <property name="frameShadow">
206 + <enum>QFrame::Plain</enum>
207 + </property>
208 + <property name="text">
209 + <string/>
210 + </property>
211 + <property name="scaledContents">
212 + <bool>true</bool>
213 + </property>
214 + </widget>
215 + </widget>
216 + <widget class="QFrame" name="frame_3">
217 + <property name="geometry">
218 + <rect>
219 + <x>420</x>
220 + <y>20</y>
221 + <width>120</width>
222 + <height>201</height>
223 + </rect>
224 + </property>
225 + <property name="frameShape">
226 + <enum>QFrame::StyledPanel</enum>
227 + </property>
228 + <property name="frameShadow">
229 + <enum>QFrame::Raised</enum>
230 + </property>
231 + <widget class="QLabel" name="text_3">
232 + <property name="geometry">
233 + <rect>
234 + <x>0</x>
235 + <y>120</y>
236 + <width>121</width>
237 + <height>81</height>
238 + </rect>
239 + </property>
240 + <property name="font">
241 + <font>
242 + <family>Adobe Arabic</family>
243 + <pointsize>8</pointsize>
244 + </font>
245 + </property>
246 + <property name="text">
247 + <string/>
248 + </property>
249 + </widget>
250 + <widget class="QLabel" name="image_3">
251 + <property name="geometry">
252 + <rect>
253 + <x>10</x>
254 + <y>10</y>
255 + <width>100</width>
256 + <height>100</height>
257 + </rect>
258 + </property>
259 + <property name="frameShape">
260 + <enum>QFrame::NoFrame</enum>
261 + </property>
262 + <property name="frameShadow">
263 + <enum>QFrame::Plain</enum>
264 + </property>
265 + <property name="text">
266 + <string/>
267 + </property>
268 + <property name="scaledContents">
269 + <bool>true</bool>
270 + </property>
271 + </widget>
272 + </widget>
273 + <widget class="QFrame" name="frame_4">
274 + <property name="geometry">
275 + <rect>
276 + <x>550</x>
277 + <y>20</y>
278 + <width>120</width>
279 + <height>201</height>
280 + </rect>
281 + </property>
282 + <property name="frameShape">
283 + <enum>QFrame::StyledPanel</enum>
284 + </property>
285 + <property name="frameShadow">
286 + <enum>QFrame::Raised</enum>
287 + </property>
288 + <widget class="QLabel" name="text_4">
289 + <property name="geometry">
290 + <rect>
291 + <x>0</x>
292 + <y>120</y>
293 + <width>121</width>
294 + <height>81</height>
295 + </rect>
296 + </property>
297 + <property name="font">
298 + <font>
299 + <family>Adobe Arabic</family>
300 + <pointsize>8</pointsize>
301 + </font>
302 + </property>
303 + <property name="text">
304 + <string/>
305 + </property>
306 + </widget>
307 + <widget class="QLabel" name="image_4">
308 + <property name="geometry">
309 + <rect>
310 + <x>10</x>
311 + <y>10</y>
312 + <width>100</width>
313 + <height>100</height>
314 + </rect>
315 + </property>
316 + <property name="frameShape">
317 + <enum>QFrame::NoFrame</enum>
318 + </property>
319 + <property name="frameShadow">
320 + <enum>QFrame::Plain</enum>
321 + </property>
322 + <property name="text">
323 + <string/>
324 + </property>
325 + <property name="scaledContents">
326 + <bool>true</bool>
327 + </property>
328 + </widget>
329 + </widget>
330 + <widget class="QFrame" name="frame">
331 + <property name="geometry">
332 + <rect>
333 + <x>20</x>
334 + <y>270</y>
335 + <width>120</width>
336 + <height>121</height>
337 + </rect>
338 + </property>
339 + <property name="frameShape">
340 + <enum>QFrame::StyledPanel</enum>
341 + </property>
342 + <property name="frameShadow">
343 + <enum>QFrame::Raised</enum>
344 + </property>
345 + <widget class="QLabel" name="label_3">
346 + <property name="geometry">
347 + <rect>
348 + <x>0</x>
349 + <y>0</y>
350 + <width>120</width>
351 + <height>120</height>
352 + </rect>
353 + </property>
354 + <property name="frameShape">
355 + <enum>QFrame::Panel</enum>
356 + </property>
357 + <property name="frameShadow">
358 + <enum>QFrame::Raised</enum>
359 + </property>
360 + <property name="text">
361 + <string/>
362 + </property>
363 + </widget>
364 + <widget class="QPushButton" name="pButton_drone">
365 + <property name="geometry">
366 + <rect>
367 + <x>10</x>
368 + <y>10</y>
369 + <width>100</width>
370 + <height>100</height>
371 + </rect>
372 + </property>
373 + <property name="text">
374 + <string/>
375 + </property>
376 + <property name="icon">
377 + <iconset>
378 + <normaloff>image_practice/drone.png</normaloff>
379 + <normalon>image_practice/drone.png</normalon>
380 + <disabledoff>image_practice/drone.png</disabledoff>
381 + <disabledon>image_practice/drone.png</disabledon>
382 + <activeoff>image_practice/drone.png</activeoff>
383 + <activeon>image_practice/drone.png</activeon>image_practice/drone.png</iconset>
384 + </property>
385 + <property name="iconSize">
386 + <size>
387 + <width>100</width>
388 + <height>100</height>
389 + </size>
390 + </property>
391 + </widget>
392 + </widget>
393 + <zorder>frame_0</zorder>
394 + <zorder>textBrowser</zorder>
395 + <zorder>frame_1</zorder>
396 + <zorder>frame_2</zorder>
397 + <zorder>frame_3</zorder>
398 + <zorder>frame_4</zorder>
399 + <zorder>frame</zorder>
400 + </widget>
401 + <resources/>
402 + <connections/>
403 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>Dialog</class>
4 + <widget class="QDialog" name="Dialog">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>695</width>
10 + <height>441</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>Dialog</string>
15 + </property>
16 + <widget class="QFrame" name="frame_0">
17 + <property name="geometry">
18 + <rect>
19 + <x>30</x>
20 + <y>150</y>
21 + <width>120</width>
22 + <height>121</height>
23 + </rect>
24 + </property>
25 + <property name="frameShape">
26 + <enum>QFrame::StyledPanel</enum>
27 + </property>
28 + <property name="frameShadow">
29 + <enum>QFrame::Raised</enum>
30 + </property>
31 + <widget class="QPushButton" name="pButton_0">
32 + <property name="geometry">
33 + <rect>
34 + <x>10</x>
35 + <y>10</y>
36 + <width>101</width>
37 + <height>101</height>
38 + </rect>
39 + </property>
40 + <property name="text">
41 + <string/>
42 + </property>
43 + <property name="iconSize">
44 + <size>
45 + <width>100</width>
46 + <height>100</height>
47 + </size>
48 + </property>
49 + </widget>
50 + </widget>
51 + <widget class="QFrame" name="frame_1">
52 + <property name="geometry">
53 + <rect>
54 + <x>160</x>
55 + <y>150</y>
56 + <width>120</width>
57 + <height>121</height>
58 + </rect>
59 + </property>
60 + <property name="frameShape">
61 + <enum>QFrame::StyledPanel</enum>
62 + </property>
63 + <property name="frameShadow">
64 + <enum>QFrame::Raised</enum>
65 + </property>
66 + <widget class="QPushButton" name="pButton_1">
67 + <property name="geometry">
68 + <rect>
69 + <x>10</x>
70 + <y>10</y>
71 + <width>101</width>
72 + <height>101</height>
73 + </rect>
74 + </property>
75 + <property name="text">
76 + <string/>
77 + </property>
78 + <property name="iconSize">
79 + <size>
80 + <width>100</width>
81 + <height>100</height>
82 + </size>
83 + </property>
84 + </widget>
85 + </widget>
86 + <widget class="QFrame" name="frame_2">
87 + <property name="geometry">
88 + <rect>
89 + <x>290</x>
90 + <y>150</y>
91 + <width>120</width>
92 + <height>121</height>
93 + </rect>
94 + </property>
95 + <property name="frameShape">
96 + <enum>QFrame::StyledPanel</enum>
97 + </property>
98 + <property name="frameShadow">
99 + <enum>QFrame::Raised</enum>
100 + </property>
101 + <widget class="QPushButton" name="pButton_2">
102 + <property name="geometry">
103 + <rect>
104 + <x>10</x>
105 + <y>10</y>
106 + <width>101</width>
107 + <height>101</height>
108 + </rect>
109 + </property>
110 + <property name="text">
111 + <string/>
112 + </property>
113 + <property name="iconSize">
114 + <size>
115 + <width>100</width>
116 + <height>100</height>
117 + </size>
118 + </property>
119 + </widget>
120 + </widget>
121 + <widget class="QFrame" name="frame_3">
122 + <property name="geometry">
123 + <rect>
124 + <x>420</x>
125 + <y>150</y>
126 + <width>120</width>
127 + <height>121</height>
128 + </rect>
129 + </property>
130 + <property name="frameShape">
131 + <enum>QFrame::StyledPanel</enum>
132 + </property>
133 + <property name="frameShadow">
134 + <enum>QFrame::Raised</enum>
135 + </property>
136 + <widget class="QPushButton" name="pButton_3">
137 + <property name="geometry">
138 + <rect>
139 + <x>10</x>
140 + <y>10</y>
141 + <width>101</width>
142 + <height>101</height>
143 + </rect>
144 + </property>
145 + <property name="text">
146 + <string/>
147 + </property>
148 + <property name="iconSize">
149 + <size>
150 + <width>100</width>
151 + <height>100</height>
152 + </size>
153 + </property>
154 + </widget>
155 + </widget>
156 + <widget class="QFrame" name="frame_4">
157 + <property name="geometry">
158 + <rect>
159 + <x>550</x>
160 + <y>150</y>
161 + <width>120</width>
162 + <height>121</height>
163 + </rect>
164 + </property>
165 + <property name="frameShape">
166 + <enum>QFrame::StyledPanel</enum>
167 + </property>
168 + <property name="frameShadow">
169 + <enum>QFrame::Raised</enum>
170 + </property>
171 + <widget class="QPushButton" name="pButton_4">
172 + <property name="geometry">
173 + <rect>
174 + <x>10</x>
175 + <y>10</y>
176 + <width>101</width>
177 + <height>101</height>
178 + </rect>
179 + </property>
180 + <property name="text">
181 + <string/>
182 + </property>
183 + <property name="iconSize">
184 + <size>
185 + <width>100</width>
186 + <height>100</height>
187 + </size>
188 + </property>
189 + </widget>
190 + </widget>
191 + <widget class="QFrame" name="frame">
192 + <property name="geometry">
193 + <rect>
194 + <x>40</x>
195 + <y>100</y>
196 + <width>101</width>
197 + <height>31</height>
198 + </rect>
199 + </property>
200 + <property name="frameShape">
201 + <enum>QFrame::Box</enum>
202 + </property>
203 + <property name="frameShadow">
204 + <enum>QFrame::Raised</enum>
205 + </property>
206 + <widget class="QLabel" name="label">
207 + <property name="geometry">
208 + <rect>
209 + <x>10</x>
210 + <y>10</y>
211 + <width>81</width>
212 + <height>16</height>
213 + </rect>
214 + </property>
215 + <property name="font">
216 + <font>
217 + <family>HY궁서B</family>
218 + </font>
219 + </property>
220 + <property name="text">
221 + <string>'ㅣ' 외향 모음</string>
222 + </property>
223 + </widget>
224 + </widget>
225 + <widget class="QFrame" name="frame_5">
226 + <property name="geometry">
227 + <rect>
228 + <x>170</x>
229 + <y>100</y>
230 + <width>101</width>
231 + <height>31</height>
232 + </rect>
233 + </property>
234 + <property name="frameShape">
235 + <enum>QFrame::Box</enum>
236 + </property>
237 + <property name="frameShadow">
238 + <enum>QFrame::Raised</enum>
239 + </property>
240 + <widget class="QLabel" name="label_2">
241 + <property name="geometry">
242 + <rect>
243 + <x>10</x>
244 + <y>10</y>
245 + <width>81</width>
246 + <height>16</height>
247 + </rect>
248 + </property>
249 + <property name="font">
250 + <font>
251 + <family>HY궁서B</family>
252 + </font>
253 + </property>
254 + <property name="text">
255 + <string>'ㅣ'내향 모음</string>
256 + </property>
257 + </widget>
258 + </widget>
259 + <widget class="QFrame" name="frame_6">
260 + <property name="geometry">
261 + <rect>
262 + <x>300</x>
263 + <y>100</y>
264 + <width>101</width>
265 + <height>31</height>
266 + </rect>
267 + </property>
268 + <property name="frameShape">
269 + <enum>QFrame::Box</enum>
270 + </property>
271 + <property name="frameShadow">
272 + <enum>QFrame::Raised</enum>
273 + </property>
274 + <widget class="QLabel" name="label_3">
275 + <property name="geometry">
276 + <rect>
277 + <x>10</x>
278 + <y>10</y>
279 + <width>91</width>
280 + <height>16</height>
281 + </rect>
282 + </property>
283 + <property name="font">
284 + <font>
285 + <family>HY궁서B</family>
286 + </font>
287 + </property>
288 + <property name="text">
289 + <string>'ㅡ' 외향 모음</string>
290 + </property>
291 + </widget>
292 + </widget>
293 + <widget class="QFrame" name="frame_7">
294 + <property name="geometry">
295 + <rect>
296 + <x>430</x>
297 + <y>100</y>
298 + <width>101</width>
299 + <height>31</height>
300 + </rect>
301 + </property>
302 + <property name="frameShape">
303 + <enum>QFrame::Box</enum>
304 + </property>
305 + <property name="frameShadow">
306 + <enum>QFrame::Raised</enum>
307 + </property>
308 + <widget class="QLabel" name="label_4">
309 + <property name="geometry">
310 + <rect>
311 + <x>10</x>
312 + <y>10</y>
313 + <width>81</width>
314 + <height>16</height>
315 + </rect>
316 + </property>
317 + <property name="font">
318 + <font>
319 + <family>HY궁서B</family>
320 + </font>
321 + </property>
322 + <property name="text">
323 + <string>'ㅡ' 내향 모음</string>
324 + </property>
325 + </widget>
326 + </widget>
327 + <widget class="QFrame" name="frame_8">
328 + <property name="geometry">
329 + <rect>
330 + <x>560</x>
331 + <y>100</y>
332 + <width>101</width>
333 + <height>31</height>
334 + </rect>
335 + </property>
336 + <property name="frameShape">
337 + <enum>QFrame::Box</enum>
338 + </property>
339 + <property name="frameShadow">
340 + <enum>QFrame::Raised</enum>
341 + </property>
342 + <widget class="QLabel" name="label_5">
343 + <property name="geometry">
344 + <rect>
345 + <x>40</x>
346 + <y>10</y>
347 + <width>31</width>
348 + <height>16</height>
349 + </rect>
350 + </property>
351 + <property name="font">
352 + <font>
353 + <family>HY궁서B</family>
354 + </font>
355 + </property>
356 + <property name="text">
357 + <string>받침</string>
358 + </property>
359 + </widget>
360 + </widget>
361 + <widget class="QFrame" name="frame_9">
362 + <property name="geometry">
363 + <rect>
364 + <x>40</x>
365 + <y>20</y>
366 + <width>621</width>
367 + <height>61</height>
368 + </rect>
369 + </property>
370 + <property name="frameShape">
371 + <enum>QFrame::Box</enum>
372 + </property>
373 + <property name="frameShadow">
374 + <enum>QFrame::Raised</enum>
375 + </property>
376 + <widget class="QLabel" name="label_7">
377 + <property name="geometry">
378 + <rect>
379 + <x>20</x>
380 + <y>10</y>
381 + <width>581</width>
382 + <height>21</height>
383 + </rect>
384 + </property>
385 + <property name="font">
386 + <font>
387 + <family>HY궁서B</family>
388 + </font>
389 + </property>
390 + <property name="text">
391 + <string>자음의 경우 받침을 제외하고 같이 모아 써지는 모음에 따라 모양이 달라질 수 있습니다.</string>
392 + </property>
393 + </widget>
394 + <widget class="QLabel" name="label_9">
395 + <property name="geometry">
396 + <rect>
397 + <x>20</x>
398 + <y>30</y>
399 + <width>581</width>
400 + <height>21</height>
401 + </rect>
402 + </property>
403 + <property name="font">
404 + <font>
405 + <family>HY궁서B</family>
406 + </font>
407 + </property>
408 + <property name="text">
409 + <string>해당 자음 버튼을 눌러 학습해봅시다.</string>
410 + </property>
411 + </widget>
412 + </widget>
413 + <widget class="QFrame" name="frame_10">
414 + <property name="geometry">
415 + <rect>
416 + <x>40</x>
417 + <y>280</y>
418 + <width>621</width>
419 + <height>151</height>
420 + </rect>
421 + </property>
422 + <property name="frameShape">
423 + <enum>QFrame::Box</enum>
424 + </property>
425 + <property name="frameShadow">
426 + <enum>QFrame::Raised</enum>
427 + </property>
428 + <widget class="QTextBrowser" name="textBrowser">
429 + <property name="geometry">
430 + <rect>
431 + <x>10</x>
432 + <y>10</y>
433 + <width>601</width>
434 + <height>131</height>
435 + </rect>
436 + </property>
437 + </widget>
438 + </widget>
439 + </widget>
440 + <resources/>
441 + <connections/>
442 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>InfoWindow</class>
4 + <widget class="QMainWindow" name="InfoWindow">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>800</width>
10 + <height>600</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>MainWindow</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QTextBrowser" name="textBrowser">
31 + <property name="geometry">
32 + <rect>
33 + <x>140</x>
34 + <y>270</y>
35 + <width>521</width>
36 + <height>261</height>
37 + </rect>
38 + </property>
39 + <property name="html">
40 + <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
41 +&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
42 +p, li { white-space: pre-wrap; }
43 +&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Gulim'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
44 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
45 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;서예 어시스트 프로그램(Calligraphy Assist Program)을 이용해주셔서 감사합니다.&lt;br /&gt;본 프로그램은 경희대학교 캡스톤디자인2 과목의 프로젝트입니다.&lt;/p&gt;
46 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;드론을 이용해 서예를 배우는데 도움이 되고자 제작되었습니다.&lt;/p&gt;
47 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
48 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;이 프로그램은 다음과 같은 환경에서 진행되는 것을 가정으로 계획되었습니다.&lt;/p&gt;
49 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 필기구 : 모나미 붓펜&lt;/p&gt;
50 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 종이 : A4용지&lt;/p&gt;
51 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 서체 : 궁서체&lt;/p&gt;
52 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 붓펜을 드론에 연결하는 어댑터와 A4용 서예 가이드는 &lt;/p&gt;
53 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; 각각 stl파일과 pdf파일로 첨부되어 있습니다.&lt;/p&gt;
54 +&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
55 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;해당 프로그램은 아래와 같은 환경에서 만들어졌습니다.&lt;/p&gt;
56 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- IDE : VS Code&lt;/p&gt;
57 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- 제작언어 및 버전 : Python 3.8.2 64-bit&lt;br /&gt;- GUI : PyQt5 &amp;amp; Qt Designer&lt;br /&gt;&lt;br /&gt;연동되는 드론은 다음과 같습니다.&lt;br /&gt;- Codrone Pro 코드론 프로( MSIP - CRM - BYR - BR - PT )&lt;br /&gt;- BLE Board 블루투스 통신 모듈( MSIP - CRM - RLI - BLEBOARD )&lt;br /&gt;&lt;br /&gt;드론 관련 참조 사이트&lt;/p&gt;
58 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- www.robolink.co.kr&lt;br /&gt;- www.robolinksw.com&lt;/p&gt;
59 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- www.roboshop.co.kr&lt;br /&gt;&lt;/p&gt;
60 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;붓펜 관련 참조 사이트&lt;/p&gt;
61 +&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;- www.monami.com/product/product_view.php?ccode=004&amp;amp;idx=83&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
62 + </property>
63 + </widget>
64 + <widget class="QFrame" name="frame_2">
65 + <property name="geometry">
66 + <rect>
67 + <x>10</x>
68 + <y>10</y>
69 + <width>781</width>
70 + <height>561</height>
71 + </rect>
72 + </property>
73 + <property name="frameShape">
74 + <enum>QFrame::StyledPanel</enum>
75 + </property>
76 + <property name="frameShadow">
77 + <enum>QFrame::Sunken</enum>
78 + </property>
79 + <widget class="QFrame" name="frame">
80 + <property name="geometry">
81 + <rect>
82 + <x>170</x>
83 + <y>100</y>
84 + <width>441</width>
85 + <height>80</height>
86 + </rect>
87 + </property>
88 + <property name="frameShape">
89 + <enum>QFrame::Panel</enum>
90 + </property>
91 + <property name="frameShadow">
92 + <enum>QFrame::Raised</enum>
93 + </property>
94 + <property name="lineWidth">
95 + <number>1</number>
96 + </property>
97 + </widget>
98 + <widget class="QLabel" name="label">
99 + <property name="geometry">
100 + <rect>
101 + <x>179</x>
102 + <y>110</y>
103 + <width>421</width>
104 + <height>61</height>
105 + </rect>
106 + </property>
107 + <property name="font">
108 + <font>
109 + <family>HY궁서B</family>
110 + <pointsize>20</pointsize>
111 + </font>
112 + </property>
113 + <property name="text">
114 + <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;서예 어시스트 프로그램 by 드론&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
115 + </property>
116 + <property name="alignment">
117 + <set>Qt::AlignCenter</set>
118 + </property>
119 + </widget>
120 + </widget>
121 + <zorder>frame_2</zorder>
122 + <zorder>pButton_Main</zorder>
123 + <zorder>textBrowser</zorder>
124 + </widget>
125 + <widget class="QStatusBar" name="statusbar"/>
126 + </widget>
127 + <resources/>
128 + <connections/>
129 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>introduction</class>
4 + <widget class="QMainWindow" name="introduction">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>599</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>introduction</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QFrame" name="outline">
31 + <property name="geometry">
32 + <rect>
33 + <x>10</x>
34 + <y>10</y>
35 + <width>781</width>
36 + <height>561</height>
37 + </rect>
38 + </property>
39 + <property name="font">
40 + <font>
41 + <family>HY궁서B</family>
42 + <pointsize>28</pointsize>
43 + </font>
44 + </property>
45 + <property name="layoutDirection">
46 + <enum>Qt::LeftToRight</enum>
47 + </property>
48 + <property name="frameShape">
49 + <enum>QFrame::StyledPanel</enum>
50 + </property>
51 + <property name="frameShadow">
52 + <enum>QFrame::Sunken</enum>
53 + </property>
54 + <widget class="QFrame" name="semiOutline_2">
55 + <property name="geometry">
56 + <rect>
57 + <x>40</x>
58 + <y>70</y>
59 + <width>701</width>
60 + <height>441</height>
61 + </rect>
62 + </property>
63 + <property name="frameShape">
64 + <enum>QFrame::Panel</enum>
65 + </property>
66 + <property name="frameShadow">
67 + <enum>QFrame::Sunken</enum>
68 + </property>
69 + <widget class="QTextBrowser" name="tBrowser">
70 + <property name="geometry">
71 + <rect>
72 + <x>10</x>
73 + <y>10</y>
74 + <width>681</width>
75 + <height>421</height>
76 + </rect>
77 + </property>
78 + </widget>
79 + </widget>
80 + <widget class="QLabel" name="label_2">
81 + <property name="geometry">
82 + <rect>
83 + <x>50</x>
84 + <y>40</y>
85 + <width>251</width>
86 + <height>16</height>
87 + </rect>
88 + </property>
89 + <property name="font">
90 + <font>
91 + <pointsize>12</pointsize>
92 + </font>
93 + </property>
94 + <property name="text">
95 + <string>Step 1 . - 한글 서예에 대한 이해</string>
96 + </property>
97 + </widget>
98 + <widget class="QFrame" name="frame_2">
99 + <property name="geometry">
100 + <rect>
101 + <x>40</x>
102 + <y>30</y>
103 + <width>261</width>
104 + <height>31</height>
105 + </rect>
106 + </property>
107 + <property name="frameShape">
108 + <enum>QFrame::Box</enum>
109 + </property>
110 + <property name="frameShadow">
111 + <enum>QFrame::Raised</enum>
112 + </property>
113 + </widget>
114 + <widget class="QPushButton" name="pButton_Start">
115 + <property name="geometry">
116 + <rect>
117 + <x>50</x>
118 + <y>0</y>
119 + <width>51</width>
120 + <height>23</height>
121 + </rect>
122 + </property>
123 + <property name="font">
124 + <font>
125 + <family>굴림</family>
126 + <pointsize>9</pointsize>
127 + </font>
128 + </property>
129 + <property name="text">
130 + <string>start</string>
131 + </property>
132 + </widget>
133 + <widget class="QPushButton" name="pButton_Next">
134 + <property name="geometry">
135 + <rect>
136 + <x>670</x>
137 + <y>520</y>
138 + <width>71</width>
139 + <height>31</height>
140 + </rect>
141 + </property>
142 + <property name="font">
143 + <font>
144 + <family>굴림</family>
145 + <pointsize>11</pointsize>
146 + </font>
147 + </property>
148 + <property name="text">
149 + <string>Next</string>
150 + </property>
151 + </widget>
152 + <zorder>frame_2</zorder>
153 + <zorder>semiOutline_2</zorder>
154 + <zorder>label_2</zorder>
155 + <zorder>pButton_Start</zorder>
156 + <zorder>pButton_Next</zorder>
157 + </widget>
158 + <zorder>outline</zorder>
159 + <zorder>pButton_Main</zorder>
160 + </widget>
161 + <widget class="QStatusBar" name="statusbar">
162 + <property name="layoutDirection">
163 + <enum>Qt::LeftToRight</enum>
164 + </property>
165 + </widget>
166 + </widget>
167 + <resources/>
168 + <connections/>
169 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>MainWindow</class>
4 + <widget class="QMainWindow" name="MainWindow">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>800</width>
10 + <height>600</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>MainWindow</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QFrame" name="frame">
18 + <property name="geometry">
19 + <rect>
20 + <x>179</x>
21 + <y>110</y>
22 + <width>441</width>
23 + <height>80</height>
24 + </rect>
25 + </property>
26 + <property name="frameShape">
27 + <enum>QFrame::Panel</enum>
28 + </property>
29 + <property name="frameShadow">
30 + <enum>QFrame::Raised</enum>
31 + </property>
32 + <property name="lineWidth">
33 + <number>1</number>
34 + </property>
35 + <widget class="QLabel" name="label">
36 + <property name="geometry">
37 + <rect>
38 + <x>10</x>
39 + <y>10</y>
40 + <width>421</width>
41 + <height>61</height>
42 + </rect>
43 + </property>
44 + <property name="font">
45 + <font>
46 + <family>HY궁서B</family>
47 + <pointsize>20</pointsize>
48 + </font>
49 + </property>
50 + <property name="text">
51 + <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;서예 어시스트 프로그램 by 드론&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
52 + </property>
53 + <property name="alignment">
54 + <set>Qt::AlignCenter</set>
55 + </property>
56 + </widget>
57 + </widget>
58 + <widget class="QFrame" name="frame_2">
59 + <property name="geometry">
60 + <rect>
61 + <x>10</x>
62 + <y>10</y>
63 + <width>781</width>
64 + <height>561</height>
65 + </rect>
66 + </property>
67 + <property name="frameShape">
68 + <enum>QFrame::StyledPanel</enum>
69 + </property>
70 + <property name="frameShadow">
71 + <enum>QFrame::Sunken</enum>
72 + </property>
73 + <widget class="QWidget" name="verticalLayoutWidget">
74 + <property name="geometry">
75 + <rect>
76 + <x>240</x>
77 + <y>300</y>
78 + <width>301</width>
79 + <height>201</height>
80 + </rect>
81 + </property>
82 + <layout class="QVBoxLayout" name="verticalLayout">
83 + <item>
84 + <widget class="QPushButton" name="pButton_Start">
85 + <property name="text">
86 + <string>시작</string>
87 + </property>
88 + </widget>
89 + </item>
90 + <item>
91 + <widget class="QPushButton" name="pButton_Info">
92 + <property name="text">
93 + <string>정보</string>
94 + </property>
95 + </widget>
96 + </item>
97 + <item>
98 + <widget class="QPushButton" name="pButton_End">
99 + <property name="text">
100 + <string>종료</string>
101 + </property>
102 + </widget>
103 + </item>
104 + </layout>
105 + </widget>
106 + </widget>
107 + <zorder>frame_2</zorder>
108 + <zorder>frame</zorder>
109 + </widget>
110 + <widget class="QStatusBar" name="statusbar">
111 + <property name="layoutDirection">
112 + <enum>Qt::LeftToRight</enum>
113 + </property>
114 + </widget>
115 + </widget>
116 + <resources/>
117 + <connections/>
118 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>practice</class>
4 + <widget class="QMainWindow" name="practice">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>597</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>practice</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QFrame" name="outline">
31 + <property name="geometry">
32 + <rect>
33 + <x>10</x>
34 + <y>10</y>
35 + <width>781</width>
36 + <height>561</height>
37 + </rect>
38 + </property>
39 + <property name="font">
40 + <font>
41 + <family>HY궁서B</family>
42 + <pointsize>28</pointsize>
43 + </font>
44 + </property>
45 + <property name="layoutDirection">
46 + <enum>Qt::LeftToRight</enum>
47 + </property>
48 + <property name="frameShape">
49 + <enum>QFrame::StyledPanel</enum>
50 + </property>
51 + <property name="frameShadow">
52 + <enum>QFrame::Sunken</enum>
53 + </property>
54 + <widget class="QFrame" name="frame">
55 + <property name="geometry">
56 + <rect>
57 + <x>40</x>
58 + <y>60</y>
59 + <width>211</width>
60 + <height>31</height>
61 + </rect>
62 + </property>
63 + <property name="frameShape">
64 + <enum>QFrame::Box</enum>
65 + </property>
66 + <property name="frameShadow">
67 + <enum>QFrame::Raised</enum>
68 + </property>
69 + <widget class="QLabel" name="label">
70 + <property name="geometry">
71 + <rect>
72 + <x>10</x>
73 + <y>10</y>
74 + <width>191</width>
75 + <height>16</height>
76 + </rect>
77 + </property>
78 + <property name="font">
79 + <font>
80 + <pointsize>12</pointsize>
81 + </font>
82 + </property>
83 + <property name="text">
84 + <string>Step 2. - 붓과 친해지기</string>
85 + </property>
86 + </widget>
87 + </widget>
88 + <widget class="QPushButton" name="pButton_Start">
89 + <property name="geometry">
90 + <rect>
91 + <x>50</x>
92 + <y>0</y>
93 + <width>51</width>
94 + <height>23</height>
95 + </rect>
96 + </property>
97 + <property name="font">
98 + <font>
99 + <family>굴림</family>
100 + <pointsize>9</pointsize>
101 + </font>
102 + </property>
103 + <property name="text">
104 + <string>start</string>
105 + </property>
106 + </widget>
107 + <widget class="QFrame" name="frame_5">
108 + <property name="geometry">
109 + <rect>
110 + <x>40</x>
111 + <y>110</y>
112 + <width>701</width>
113 + <height>111</height>
114 + </rect>
115 + </property>
116 + <property name="frameShape">
117 + <enum>QFrame::Panel</enum>
118 + </property>
119 + <property name="frameShadow">
120 + <enum>QFrame::Sunken</enum>
121 + </property>
122 + <widget class="QFrame" name="box_2">
123 + <property name="geometry">
124 + <rect>
125 + <x>10</x>
126 + <y>10</y>
127 + <width>681</width>
128 + <height>91</height>
129 + </rect>
130 + </property>
131 + <property name="frameShape">
132 + <enum>QFrame::Panel</enum>
133 + </property>
134 + <property name="frameShadow">
135 + <enum>QFrame::Raised</enum>
136 + </property>
137 + <widget class="QLabel" name="label_2">
138 + <property name="geometry">
139 + <rect>
140 + <x>10</x>
141 + <y>10</y>
142 + <width>671</width>
143 + <height>21</height>
144 + </rect>
145 + </property>
146 + <property name="font">
147 + <font>
148 + <pointsize>10</pointsize>
149 + </font>
150 + </property>
151 + <property name="text">
152 + <string>구체적인 궁서체 서예 학습 전에</string>
153 + </property>
154 + </widget>
155 + <widget class="QLabel" name="label_3">
156 + <property name="geometry">
157 + <rect>
158 + <x>10</x>
159 + <y>30</y>
160 + <width>671</width>
161 + <height>21</height>
162 + </rect>
163 + </property>
164 + <property name="font">
165 + <font>
166 + <pointsize>10</pointsize>
167 + </font>
168 + </property>
169 + <property name="text">
170 + <string>드론과 함께 학습하는 방식에 익숙해져 봅시다.</string>
171 + </property>
172 + </widget>
173 + <widget class="QLabel" name="label_4">
174 + <property name="geometry">
175 + <rect>
176 + <x>10</x>
177 + <y>60</y>
178 + <width>671</width>
179 + <height>21</height>
180 + </rect>
181 + </property>
182 + <property name="font">
183 + <font>
184 + <pointsize>10</pointsize>
185 + </font>
186 + </property>
187 + <property name="text">
188 + <string>아래에 있는 버튼을 클릭해보세요.</string>
189 + </property>
190 + </widget>
191 + </widget>
192 + </widget>
193 + <widget class="QFrame" name="frame_9">
194 + <property name="geometry">
195 + <rect>
196 + <x>640</x>
197 + <y>430</y>
198 + <width>101</width>
199 + <height>101</height>
200 + </rect>
201 + </property>
202 + <property name="frameShape">
203 + <enum>QFrame::Panel</enum>
204 + </property>
205 + <property name="frameShadow">
206 + <enum>QFrame::Sunken</enum>
207 + </property>
208 + <widget class="QFrame" name="box_6">
209 + <property name="geometry">
210 + <rect>
211 + <x>10</x>
212 + <y>10</y>
213 + <width>80</width>
214 + <height>80</height>
215 + </rect>
216 + </property>
217 + <property name="frameShape">
218 + <enum>QFrame::Panel</enum>
219 + </property>
220 + <property name="frameShadow">
221 + <enum>QFrame::Raised</enum>
222 + </property>
223 + <widget class="QPushButton" name="pButton_curve_right">
224 + <property name="geometry">
225 + <rect>
226 + <x>0</x>
227 + <y>0</y>
228 + <width>80</width>
229 + <height>80</height>
230 + </rect>
231 + </property>
232 + <property name="focusPolicy">
233 + <enum>Qt::WheelFocus</enum>
234 + </property>
235 + <property name="text">
236 + <string/>
237 + </property>
238 + <property name="icon">
239 + <iconset>
240 + <normalon>image_practice/curve_right.png</normalon>
241 + </iconset>
242 + </property>
243 + <property name="iconSize">
244 + <size>
245 + <width>30</width>
246 + <height>30</height>
247 + </size>
248 + </property>
249 + </widget>
250 + </widget>
251 + </widget>
252 + <widget class="QFrame" name="frame_12">
253 + <property name="geometry">
254 + <rect>
255 + <x>520</x>
256 + <y>430</y>
257 + <width>101</width>
258 + <height>101</height>
259 + </rect>
260 + </property>
261 + <property name="frameShape">
262 + <enum>QFrame::Panel</enum>
263 + </property>
264 + <property name="frameShadow">
265 + <enum>QFrame::Sunken</enum>
266 + </property>
267 + <widget class="QFrame" name="box_10">
268 + <property name="geometry">
269 + <rect>
270 + <x>10</x>
271 + <y>10</y>
272 + <width>80</width>
273 + <height>80</height>
274 + </rect>
275 + </property>
276 + <property name="frameShape">
277 + <enum>QFrame::Panel</enum>
278 + </property>
279 + <property name="frameShadow">
280 + <enum>QFrame::Raised</enum>
281 + </property>
282 + <widget class="QPushButton" name="pButton_curve_left">
283 + <property name="geometry">
284 + <rect>
285 + <x>0</x>
286 + <y>0</y>
287 + <width>80</width>
288 + <height>80</height>
289 + </rect>
290 + </property>
291 + <property name="text">
292 + <string/>
293 + </property>
294 + <property name="icon">
295 + <iconset>
296 + <normalon>image_practice/curve_left.png</normalon>
297 + </iconset>
298 + </property>
299 + <property name="iconSize">
300 + <size>
301 + <width>30</width>
302 + <height>30</height>
303 + </size>
304 + </property>
305 + </widget>
306 + </widget>
307 + </widget>
308 + <widget class="QFrame" name="frame_10">
309 + <property name="geometry">
310 + <rect>
311 + <x>400</x>
312 + <y>430</y>
313 + <width>101</width>
314 + <height>101</height>
315 + </rect>
316 + </property>
317 + <property name="frameShape">
318 + <enum>QFrame::Panel</enum>
319 + </property>
320 + <property name="frameShadow">
321 + <enum>QFrame::Sunken</enum>
322 + </property>
323 + <widget class="QFrame" name="box_7">
324 + <property name="geometry">
325 + <rect>
326 + <x>10</x>
327 + <y>10</y>
328 + <width>80</width>
329 + <height>80</height>
330 + </rect>
331 + </property>
332 + <property name="frameShape">
333 + <enum>QFrame::Panel</enum>
334 + </property>
335 + <property name="frameShadow">
336 + <enum>QFrame::Raised</enum>
337 + </property>
338 + <widget class="QPushButton" name="pButton_diagonal_right">
339 + <property name="geometry">
340 + <rect>
341 + <x>0</x>
342 + <y>0</y>
343 + <width>80</width>
344 + <height>80</height>
345 + </rect>
346 + </property>
347 + <property name="text">
348 + <string/>
349 + </property>
350 + <property name="icon">
351 + <iconset>
352 + <normalon>image_practice/diagonal_right.png</normalon>
353 + </iconset>
354 + </property>
355 + <property name="iconSize">
356 + <size>
357 + <width>30</width>
358 + <height>30</height>
359 + </size>
360 + </property>
361 + </widget>
362 + </widget>
363 + </widget>
364 + <widget class="QFrame" name="frame_11">
365 + <property name="geometry">
366 + <rect>
367 + <x>280</x>
368 + <y>430</y>
369 + <width>101</width>
370 + <height>101</height>
371 + </rect>
372 + </property>
373 + <property name="frameShape">
374 + <enum>QFrame::Panel</enum>
375 + </property>
376 + <property name="frameShadow">
377 + <enum>QFrame::Sunken</enum>
378 + </property>
379 + <widget class="QFrame" name="box_8">
380 + <property name="geometry">
381 + <rect>
382 + <x>10</x>
383 + <y>10</y>
384 + <width>80</width>
385 + <height>80</height>
386 + </rect>
387 + </property>
388 + <property name="frameShape">
389 + <enum>QFrame::Panel</enum>
390 + </property>
391 + <property name="frameShadow">
392 + <enum>QFrame::Raised</enum>
393 + </property>
394 + <widget class="QPushButton" name="pButton_diagonal_left">
395 + <property name="geometry">
396 + <rect>
397 + <x>0</x>
398 + <y>0</y>
399 + <width>80</width>
400 + <height>80</height>
401 + </rect>
402 + </property>
403 + <property name="text">
404 + <string/>
405 + </property>
406 + <property name="icon">
407 + <iconset>
408 + <normalon>image_practice/diagonal_left.png</normalon>
409 + </iconset>
410 + </property>
411 + <property name="iconSize">
412 + <size>
413 + <width>30</width>
414 + <height>30</height>
415 + </size>
416 + </property>
417 + </widget>
418 + </widget>
419 + </widget>
420 + <widget class="QFrame" name="frame_13">
421 + <property name="geometry">
422 + <rect>
423 + <x>160</x>
424 + <y>430</y>
425 + <width>101</width>
426 + <height>101</height>
427 + </rect>
428 + </property>
429 + <property name="frameShape">
430 + <enum>QFrame::Panel</enum>
431 + </property>
432 + <property name="frameShadow">
433 + <enum>QFrame::Sunken</enum>
434 + </property>
435 + <widget class="QFrame" name="box_11">
436 + <property name="geometry">
437 + <rect>
438 + <x>10</x>
439 + <y>10</y>
440 + <width>80</width>
441 + <height>80</height>
442 + </rect>
443 + </property>
444 + <property name="frameShape">
445 + <enum>QFrame::Panel</enum>
446 + </property>
447 + <property name="frameShadow">
448 + <enum>QFrame::Raised</enum>
449 + </property>
450 + <widget class="QPushButton" name="pButton_vertical">
451 + <property name="geometry">
452 + <rect>
453 + <x>0</x>
454 + <y>0</y>
455 + <width>80</width>
456 + <height>80</height>
457 + </rect>
458 + </property>
459 + <property name="text">
460 + <string/>
461 + </property>
462 + <property name="icon">
463 + <iconset>
464 + <normalon>image_practice/vertical.png</normalon>
465 + </iconset>
466 + </property>
467 + <property name="iconSize">
468 + <size>
469 + <width>30</width>
470 + <height>30</height>
471 + </size>
472 + </property>
473 + </widget>
474 + </widget>
475 + </widget>
476 + <widget class="QFrame" name="frame_14">
477 + <property name="geometry">
478 + <rect>
479 + <x>40</x>
480 + <y>430</y>
481 + <width>101</width>
482 + <height>101</height>
483 + </rect>
484 + </property>
485 + <property name="frameShape">
486 + <enum>QFrame::Panel</enum>
487 + </property>
488 + <property name="frameShadow">
489 + <enum>QFrame::Sunken</enum>
490 + </property>
491 + <widget class="QFrame" name="box_13">
492 + <property name="geometry">
493 + <rect>
494 + <x>10</x>
495 + <y>10</y>
496 + <width>80</width>
497 + <height>80</height>
498 + </rect>
499 + </property>
500 + <property name="frameShape">
501 + <enum>QFrame::Panel</enum>
502 + </property>
503 + <property name="frameShadow">
504 + <enum>QFrame::Raised</enum>
505 + </property>
506 + <widget class="QPushButton" name="pButton_horizontal">
507 + <property name="geometry">
508 + <rect>
509 + <x>0</x>
510 + <y>0</y>
511 + <width>80</width>
512 + <height>80</height>
513 + </rect>
514 + </property>
515 + <property name="text">
516 + <string/>
517 + </property>
518 + <property name="icon">
519 + <iconset>
520 + <normalon>image_practice/horizontal.png</normalon>
521 + </iconset>
522 + </property>
523 + <property name="iconSize">
524 + <size>
525 + <width>30</width>
526 + <height>30</height>
527 + </size>
528 + </property>
529 + </widget>
530 + </widget>
531 + </widget>
532 + <widget class="QFrame" name="frame_2">
533 + <property name="geometry">
534 + <rect>
535 + <x>40</x>
536 + <y>380</y>
537 + <width>101</width>
538 + <height>31</height>
539 + </rect>
540 + </property>
541 + <property name="frameShape">
542 + <enum>QFrame::Box</enum>
543 + </property>
544 + <property name="frameShadow">
545 + <enum>QFrame::Raised</enum>
546 + </property>
547 + <widget class="QLabel" name="label_5">
548 + <property name="geometry">
549 + <rect>
550 + <x>20</x>
551 + <y>10</y>
552 + <width>61</width>
553 + <height>16</height>
554 + </rect>
555 + </property>
556 + <property name="font">
557 + <font>
558 + <pointsize>12</pointsize>
559 + </font>
560 + </property>
561 + <property name="text">
562 + <string>기본 획</string>
563 + </property>
564 + </widget>
565 + </widget>
566 + <widget class="QFrame" name="frame_15">
567 + <property name="geometry">
568 + <rect>
569 + <x>40</x>
570 + <y>270</y>
571 + <width>101</width>
572 + <height>101</height>
573 + </rect>
574 + </property>
575 + <property name="frameShape">
576 + <enum>QFrame::Panel</enum>
577 + </property>
578 + <property name="frameShadow">
579 + <enum>QFrame::Sunken</enum>
580 + </property>
581 + <widget class="QFrame" name="box_14">
582 + <property name="geometry">
583 + <rect>
584 + <x>10</x>
585 + <y>10</y>
586 + <width>80</width>
587 + <height>80</height>
588 + </rect>
589 + </property>
590 + <property name="frameShape">
591 + <enum>QFrame::Panel</enum>
592 + </property>
593 + <property name="frameShadow">
594 + <enum>QFrame::Raised</enum>
595 + </property>
596 + <widget class="QPushButton" name="pButton_point0">
597 + <property name="geometry">
598 + <rect>
599 + <x>0</x>
600 + <y>0</y>
601 + <width>80</width>
602 + <height>80</height>
603 + </rect>
604 + </property>
605 + <property name="text">
606 + <string/>
607 + </property>
608 + <property name="icon">
609 + <iconset>
610 + <normalon>image_practice/point0.png</normalon>
611 + </iconset>
612 + </property>
613 + </widget>
614 + </widget>
615 + </widget>
616 + <widget class="QFrame" name="frame_3">
617 + <property name="geometry">
618 + <rect>
619 + <x>40</x>
620 + <y>230</y>
621 + <width>101</width>
622 + <height>31</height>
623 + </rect>
624 + </property>
625 + <property name="frameShape">
626 + <enum>QFrame::Box</enum>
627 + </property>
628 + <property name="frameShadow">
629 + <enum>QFrame::Raised</enum>
630 + </property>
631 + <widget class="QLabel" name="label_6">
632 + <property name="geometry">
633 + <rect>
634 + <x>20</x>
635 + <y>10</y>
636 + <width>61</width>
637 + <height>16</height>
638 + </rect>
639 + </property>
640 + <property name="font">
641 + <font>
642 + <pointsize>12</pointsize>
643 + </font>
644 + </property>
645 + <property name="text">
646 + <string>기본 점</string>
647 + </property>
648 + </widget>
649 + </widget>
650 + <widget class="QFrame" name="frame_16">
651 + <property name="geometry">
652 + <rect>
653 + <x>160</x>
654 + <y>270</y>
655 + <width>101</width>
656 + <height>101</height>
657 + </rect>
658 + </property>
659 + <property name="frameShape">
660 + <enum>QFrame::Panel</enum>
661 + </property>
662 + <property name="frameShadow">
663 + <enum>QFrame::Sunken</enum>
664 + </property>
665 + <widget class="QFrame" name="box_15">
666 + <property name="geometry">
667 + <rect>
668 + <x>10</x>
669 + <y>10</y>
670 + <width>80</width>
671 + <height>80</height>
672 + </rect>
673 + </property>
674 + <property name="frameShape">
675 + <enum>QFrame::Panel</enum>
676 + </property>
677 + <property name="frameShadow">
678 + <enum>QFrame::Raised</enum>
679 + </property>
680 + <widget class="QPushButton" name="pButton_point1">
681 + <property name="geometry">
682 + <rect>
683 + <x>0</x>
684 + <y>0</y>
685 + <width>80</width>
686 + <height>80</height>
687 + </rect>
688 + </property>
689 + <property name="text">
690 + <string/>
691 + </property>
692 + <property name="icon">
693 + <iconset>
694 + <normalon>image_practice/point1.png</normalon>
695 + </iconset>
696 + </property>
697 + </widget>
698 + </widget>
699 + </widget>
700 + <widget class="QFrame" name="frame_17">
701 + <property name="geometry">
702 + <rect>
703 + <x>280</x>
704 + <y>270</y>
705 + <width>101</width>
706 + <height>101</height>
707 + </rect>
708 + </property>
709 + <property name="frameShape">
710 + <enum>QFrame::Panel</enum>
711 + </property>
712 + <property name="frameShadow">
713 + <enum>QFrame::Sunken</enum>
714 + </property>
715 + <widget class="QFrame" name="box_16">
716 + <property name="geometry">
717 + <rect>
718 + <x>10</x>
719 + <y>10</y>
720 + <width>80</width>
721 + <height>80</height>
722 + </rect>
723 + </property>
724 + <property name="frameShape">
725 + <enum>QFrame::Panel</enum>
726 + </property>
727 + <property name="frameShadow">
728 + <enum>QFrame::Raised</enum>
729 + </property>
730 + <widget class="QPushButton" name="pButton_point2">
731 + <property name="geometry">
732 + <rect>
733 + <x>0</x>
734 + <y>0</y>
735 + <width>80</width>
736 + <height>80</height>
737 + </rect>
738 + </property>
739 + <property name="text">
740 + <string/>
741 + </property>
742 + <property name="icon">
743 + <iconset>
744 + <normalon>image_practice/point2.png</normalon>
745 + </iconset>
746 + </property>
747 + </widget>
748 + </widget>
749 + </widget>
750 + <widget class="QFrame" name="frame_18">
751 + <property name="geometry">
752 + <rect>
753 + <x>400</x>
754 + <y>270</y>
755 + <width>101</width>
756 + <height>101</height>
757 + </rect>
758 + </property>
759 + <property name="frameShape">
760 + <enum>QFrame::Panel</enum>
761 + </property>
762 + <property name="frameShadow">
763 + <enum>QFrame::Sunken</enum>
764 + </property>
765 + <widget class="QFrame" name="box_17">
766 + <property name="geometry">
767 + <rect>
768 + <x>10</x>
769 + <y>10</y>
770 + <width>80</width>
771 + <height>80</height>
772 + </rect>
773 + </property>
774 + <property name="frameShape">
775 + <enum>QFrame::Panel</enum>
776 + </property>
777 + <property name="frameShadow">
778 + <enum>QFrame::Raised</enum>
779 + </property>
780 + <widget class="QPushButton" name="pButton_point3">
781 + <property name="geometry">
782 + <rect>
783 + <x>0</x>
784 + <y>0</y>
785 + <width>80</width>
786 + <height>80</height>
787 + </rect>
788 + </property>
789 + <property name="text">
790 + <string/>
791 + </property>
792 + <property name="icon">
793 + <iconset>
794 + <normalon>image_practice/point3.png</normalon>
795 + </iconset>
796 + </property>
797 + </widget>
798 + </widget>
799 + </widget>
800 + </widget>
801 + <zorder>outline</zorder>
802 + <zorder>pButton_Main</zorder>
803 + </widget>
804 + <widget class="QStatusBar" name="statusbar">
805 + <property name="layoutDirection">
806 + <enum>Qt::LeftToRight</enum>
807 + </property>
808 + </widget>
809 + </widget>
810 + <resources/>
811 + <connections/>
812 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>StartWindow</class>
4 + <widget class="QMainWindow" name="StartWindow">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>800</width>
10 + <height>600</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>StartWindow</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="font">
27 + <font>
28 + <family>HY궁서B</family>
29 + <pointsize>8</pointsize>
30 + </font>
31 + </property>
32 + <property name="text">
33 + <string>Main</string>
34 + </property>
35 + </widget>
36 + <widget class="QFrame" name="outline">
37 + <property name="geometry">
38 + <rect>
39 + <x>10</x>
40 + <y>10</y>
41 + <width>781</width>
42 + <height>561</height>
43 + </rect>
44 + </property>
45 + <property name="font">
46 + <font>
47 + <family>HY궁서B</family>
48 + <pointsize>28</pointsize>
49 + </font>
50 + </property>
51 + <property name="layoutDirection">
52 + <enum>Qt::LeftToRight</enum>
53 + </property>
54 + <property name="frameShape">
55 + <enum>QFrame::StyledPanel</enum>
56 + </property>
57 + <property name="frameShadow">
58 + <enum>QFrame::Sunken</enum>
59 + </property>
60 + <widget class="QFrame" name="semiOutline_1">
61 + <property name="geometry">
62 + <rect>
63 + <x>80</x>
64 + <y>100</y>
65 + <width>281</width>
66 + <height>101</height>
67 + </rect>
68 + </property>
69 + <property name="frameShape">
70 + <enum>QFrame::Panel</enum>
71 + </property>
72 + <property name="frameShadow">
73 + <enum>QFrame::Sunken</enum>
74 + </property>
75 + <widget class="QFrame" name="box_8">
76 + <property name="geometry">
77 + <rect>
78 + <x>10</x>
79 + <y>10</y>
80 + <width>261</width>
81 + <height>80</height>
82 + </rect>
83 + </property>
84 + <property name="frameShape">
85 + <enum>QFrame::Panel</enum>
86 + </property>
87 + <property name="frameShadow">
88 + <enum>QFrame::Raised</enum>
89 + </property>
90 + <widget class="QPushButton" name="pButton_0">
91 + <property name="geometry">
92 + <rect>
93 + <x>0</x>
94 + <y>0</y>
95 + <width>261</width>
96 + <height>81</height>
97 + </rect>
98 + </property>
99 + <property name="font">
100 + <font>
101 + <pointsize>14</pointsize>
102 + </font>
103 + </property>
104 + <property name="text">
105 + <string>한글의 특성</string>
106 + </property>
107 + </widget>
108 + </widget>
109 + </widget>
110 + <widget class="QFrame" name="frame">
111 + <property name="geometry">
112 + <rect>
113 + <x>80</x>
114 + <y>60</y>
115 + <width>91</width>
116 + <height>31</height>
117 + </rect>
118 + </property>
119 + <property name="frameShape">
120 + <enum>QFrame::Box</enum>
121 + </property>
122 + <property name="frameShadow">
123 + <enum>QFrame::Raised</enum>
124 + </property>
125 + <widget class="QLabel" name="label">
126 + <property name="geometry">
127 + <rect>
128 + <x>10</x>
129 + <y>10</y>
130 + <width>71</width>
131 + <height>16</height>
132 + </rect>
133 + </property>
134 + <property name="font">
135 + <font>
136 + <pointsize>12</pointsize>
137 + </font>
138 + </property>
139 + <property name="text">
140 + <string>Step 0.</string>
141 + </property>
142 + </widget>
143 + </widget>
144 + <widget class="QFrame" name="frame_2">
145 + <property name="geometry">
146 + <rect>
147 + <x>80</x>
148 + <y>220</y>
149 + <width>91</width>
150 + <height>31</height>
151 + </rect>
152 + </property>
153 + <property name="frameShape">
154 + <enum>QFrame::Box</enum>
155 + </property>
156 + <property name="frameShadow">
157 + <enum>QFrame::Raised</enum>
158 + </property>
159 + <widget class="QLabel" name="label_2">
160 + <property name="geometry">
161 + <rect>
162 + <x>10</x>
163 + <y>10</y>
164 + <width>71</width>
165 + <height>16</height>
166 + </rect>
167 + </property>
168 + <property name="font">
169 + <font>
170 + <pointsize>12</pointsize>
171 + </font>
172 + </property>
173 + <property name="text">
174 + <string>Step 2.</string>
175 + </property>
176 + </widget>
177 + </widget>
178 + <widget class="QFrame" name="semiOutline_2">
179 + <property name="geometry">
180 + <rect>
181 + <x>80</x>
182 + <y>260</y>
183 + <width>281</width>
184 + <height>101</height>
185 + </rect>
186 + </property>
187 + <property name="frameShape">
188 + <enum>QFrame::Panel</enum>
189 + </property>
190 + <property name="frameShadow">
191 + <enum>QFrame::Sunken</enum>
192 + </property>
193 + <widget class="QFrame" name="box_10">
194 + <property name="geometry">
195 + <rect>
196 + <x>10</x>
197 + <y>10</y>
198 + <width>260</width>
199 + <height>80</height>
200 + </rect>
201 + </property>
202 + <property name="frameShape">
203 + <enum>QFrame::Panel</enum>
204 + </property>
205 + <property name="frameShadow">
206 + <enum>QFrame::Raised</enum>
207 + </property>
208 + <widget class="QPushButton" name="pButton_2">
209 + <property name="geometry">
210 + <rect>
211 + <x>0</x>
212 + <y>0</y>
213 + <width>260</width>
214 + <height>80</height>
215 + </rect>
216 + </property>
217 + <property name="font">
218 + <font>
219 + <pointsize>14</pointsize>
220 + </font>
221 + </property>
222 + <property name="text">
223 + <string>붓과 친해지기</string>
224 + </property>
225 + </widget>
226 + </widget>
227 + </widget>
228 + <widget class="QFrame" name="semiOutline_3">
229 + <property name="geometry">
230 + <rect>
231 + <x>420</x>
232 + <y>100</y>
233 + <width>281</width>
234 + <height>101</height>
235 + </rect>
236 + </property>
237 + <property name="frameShape">
238 + <enum>QFrame::Panel</enum>
239 + </property>
240 + <property name="frameShadow">
241 + <enum>QFrame::Sunken</enum>
242 + </property>
243 + <widget class="QFrame" name="box_14">
244 + <property name="geometry">
245 + <rect>
246 + <x>10</x>
247 + <y>10</y>
248 + <width>260</width>
249 + <height>80</height>
250 + </rect>
251 + </property>
252 + <property name="frameShape">
253 + <enum>QFrame::Panel</enum>
254 + </property>
255 + <property name="frameShadow">
256 + <enum>QFrame::Raised</enum>
257 + </property>
258 + <widget class="QPushButton" name="pButton_1">
259 + <property name="geometry">
260 + <rect>
261 + <x>0</x>
262 + <y>0</y>
263 + <width>260</width>
264 + <height>80</height>
265 + </rect>
266 + </property>
267 + <property name="font">
268 + <font>
269 + <pointsize>14</pointsize>
270 + </font>
271 + </property>
272 + <property name="text">
273 + <string>서예에 대한 이해</string>
274 + </property>
275 + </widget>
276 + </widget>
277 + </widget>
278 + <widget class="QFrame" name="frame_3">
279 + <property name="geometry">
280 + <rect>
281 + <x>420</x>
282 + <y>60</y>
283 + <width>91</width>
284 + <height>31</height>
285 + </rect>
286 + </property>
287 + <property name="frameShape">
288 + <enum>QFrame::Box</enum>
289 + </property>
290 + <property name="frameShadow">
291 + <enum>QFrame::Raised</enum>
292 + </property>
293 + <widget class="QLabel" name="label_6">
294 + <property name="geometry">
295 + <rect>
296 + <x>10</x>
297 + <y>10</y>
298 + <width>71</width>
299 + <height>16</height>
300 + </rect>
301 + </property>
302 + <property name="font">
303 + <font>
304 + <pointsize>12</pointsize>
305 + </font>
306 + </property>
307 + <property name="text">
308 + <string>Step 1.</string>
309 + </property>
310 + </widget>
311 + </widget>
312 + <widget class="QFrame" name="semiOutline_4">
313 + <property name="geometry">
314 + <rect>
315 + <x>420</x>
316 + <y>260</y>
317 + <width>281</width>
318 + <height>101</height>
319 + </rect>
320 + </property>
321 + <property name="frameShape">
322 + <enum>QFrame::Panel</enum>
323 + </property>
324 + <property name="frameShadow">
325 + <enum>QFrame::Sunken</enum>
326 + </property>
327 + <widget class="QFrame" name="box_18">
328 + <property name="geometry">
329 + <rect>
330 + <x>10</x>
331 + <y>10</y>
332 + <width>260</width>
333 + <height>80</height>
334 + </rect>
335 + </property>
336 + <property name="frameShape">
337 + <enum>QFrame::Panel</enum>
338 + </property>
339 + <property name="frameShadow">
340 + <enum>QFrame::Raised</enum>
341 + </property>
342 + <widget class="QPushButton" name="pButton_3">
343 + <property name="geometry">
344 + <rect>
345 + <x>0</x>
346 + <y>0</y>
347 + <width>260</width>
348 + <height>80</height>
349 + </rect>
350 + </property>
351 + <property name="font">
352 + <font>
353 + <pointsize>14</pointsize>
354 + </font>
355 + </property>
356 + <property name="text">
357 + <string>자모의 기본 - 획</string>
358 + </property>
359 + </widget>
360 + </widget>
361 + </widget>
362 + <widget class="QFrame" name="frame_4">
363 + <property name="geometry">
364 + <rect>
365 + <x>420</x>
366 + <y>220</y>
367 + <width>91</width>
368 + <height>31</height>
369 + </rect>
370 + </property>
371 + <property name="frameShape">
372 + <enum>QFrame::Box</enum>
373 + </property>
374 + <property name="frameShadow">
375 + <enum>QFrame::Raised</enum>
376 + </property>
377 + <widget class="QLabel" name="label_10">
378 + <property name="geometry">
379 + <rect>
380 + <x>10</x>
381 + <y>10</y>
382 + <width>71</width>
383 + <height>16</height>
384 + </rect>
385 + </property>
386 + <property name="font">
387 + <font>
388 + <pointsize>12</pointsize>
389 + </font>
390 + </property>
391 + <property name="text">
392 + <string>Step 3.</string>
393 + </property>
394 + </widget>
395 + </widget>
396 + <widget class="QFrame" name="semiOutline_5">
397 + <property name="geometry">
398 + <rect>
399 + <x>80</x>
400 + <y>420</y>
401 + <width>281</width>
402 + <height>101</height>
403 + </rect>
404 + </property>
405 + <property name="frameShape">
406 + <enum>QFrame::Panel</enum>
407 + </property>
408 + <property name="frameShadow">
409 + <enum>QFrame::Sunken</enum>
410 + </property>
411 + <widget class="QFrame" name="box_19">
412 + <property name="geometry">
413 + <rect>
414 + <x>10</x>
415 + <y>10</y>
416 + <width>260</width>
417 + <height>80</height>
418 + </rect>
419 + </property>
420 + <property name="frameShape">
421 + <enum>QFrame::Panel</enum>
422 + </property>
423 + <property name="frameShadow">
424 + <enum>QFrame::Raised</enum>
425 + </property>
426 + <widget class="QPushButton" name="pButton_4">
427 + <property name="geometry">
428 + <rect>
429 + <x>0</x>
430 + <y>0</y>
431 + <width>260</width>
432 + <height>80</height>
433 + </rect>
434 + </property>
435 + <property name="font">
436 + <font>
437 + <pointsize>14</pointsize>
438 + </font>
439 + </property>
440 + <property name="text">
441 + <string>한글의 자모 - 자음</string>
442 + </property>
443 + </widget>
444 + </widget>
445 + </widget>
446 + <widget class="QFrame" name="frame_5">
447 + <property name="geometry">
448 + <rect>
449 + <x>80</x>
450 + <y>380</y>
451 + <width>91</width>
452 + <height>31</height>
453 + </rect>
454 + </property>
455 + <property name="frameShape">
456 + <enum>QFrame::Box</enum>
457 + </property>
458 + <property name="frameShadow">
459 + <enum>QFrame::Raised</enum>
460 + </property>
461 + <widget class="QLabel" name="label_11">
462 + <property name="geometry">
463 + <rect>
464 + <x>10</x>
465 + <y>10</y>
466 + <width>71</width>
467 + <height>16</height>
468 + </rect>
469 + </property>
470 + <property name="font">
471 + <font>
472 + <pointsize>12</pointsize>
473 + </font>
474 + </property>
475 + <property name="text">
476 + <string>Step 4.</string>
477 + </property>
478 + </widget>
479 + </widget>
480 + <widget class="QFrame" name="semiOutline_6">
481 + <property name="geometry">
482 + <rect>
483 + <x>420</x>
484 + <y>420</y>
485 + <width>281</width>
486 + <height>101</height>
487 + </rect>
488 + </property>
489 + <property name="frameShape">
490 + <enum>QFrame::Panel</enum>
491 + </property>
492 + <property name="frameShadow">
493 + <enum>QFrame::Sunken</enum>
494 + </property>
495 + <widget class="QFrame" name="box_21">
496 + <property name="geometry">
497 + <rect>
498 + <x>10</x>
499 + <y>10</y>
500 + <width>260</width>
501 + <height>80</height>
502 + </rect>
503 + </property>
504 + <property name="frameShape">
505 + <enum>QFrame::Panel</enum>
506 + </property>
507 + <property name="frameShadow">
508 + <enum>QFrame::Raised</enum>
509 + </property>
510 + <widget class="QPushButton" name="pButton_5">
511 + <property name="geometry">
512 + <rect>
513 + <x>0</x>
514 + <y>0</y>
515 + <width>260</width>
516 + <height>80</height>
517 + </rect>
518 + </property>
519 + <property name="font">
520 + <font>
521 + <pointsize>14</pointsize>
522 + </font>
523 + </property>
524 + <property name="text">
525 + <string>한글의 자모 - 모음</string>
526 + </property>
527 + </widget>
528 + </widget>
529 + </widget>
530 + <widget class="QFrame" name="frame_6">
531 + <property name="geometry">
532 + <rect>
533 + <x>420</x>
534 + <y>380</y>
535 + <width>91</width>
536 + <height>31</height>
537 + </rect>
538 + </property>
539 + <property name="frameShape">
540 + <enum>QFrame::Box</enum>
541 + </property>
542 + <property name="frameShadow">
543 + <enum>QFrame::Raised</enum>
544 + </property>
545 + <widget class="QLabel" name="label_13">
546 + <property name="geometry">
547 + <rect>
548 + <x>10</x>
549 + <y>10</y>
550 + <width>71</width>
551 + <height>16</height>
552 + </rect>
553 + </property>
554 + <property name="font">
555 + <font>
556 + <pointsize>12</pointsize>
557 + </font>
558 + </property>
559 + <property name="text">
560 + <string>Step 5.</string>
561 + </property>
562 + </widget>
563 + </widget>
564 + <zorder>frame</zorder>
565 + <zorder>semiOutline_1</zorder>
566 + <zorder>frame_2</zorder>
567 + <zorder>semiOutline_2</zorder>
568 + <zorder>semiOutline_3</zorder>
569 + <zorder>frame_3</zorder>
570 + <zorder>semiOutline_4</zorder>
571 + <zorder>frame_4</zorder>
572 + <zorder>semiOutline_5</zorder>
573 + <zorder>frame_5</zorder>
574 + <zorder>semiOutline_6</zorder>
575 + <zorder>frame_6</zorder>
576 + </widget>
577 + <zorder>outline</zorder>
578 + <zorder>pButton_Main</zorder>
579 + </widget>
580 + <widget class="QStatusBar" name="statusbar">
581 + <property name="layoutDirection">
582 + <enum>Qt::LeftToRight</enum>
583 + </property>
584 + </widget>
585 + </widget>
586 + <resources/>
587 + <connections/>
588 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>stroke</class>
4 + <widget class="QMainWindow" name="stroke">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>599</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>stroke</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QFrame" name="outline">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>781</width>
23 + <height>561</height>
24 + </rect>
25 + </property>
26 + <property name="font">
27 + <font>
28 + <family>HY궁서B</family>
29 + <pointsize>28</pointsize>
30 + </font>
31 + </property>
32 + <property name="layoutDirection">
33 + <enum>Qt::LeftToRight</enum>
34 + </property>
35 + <property name="frameShape">
36 + <enum>QFrame::StyledPanel</enum>
37 + </property>
38 + <property name="frameShadow">
39 + <enum>QFrame::Sunken</enum>
40 + </property>
41 + <widget class="QLabel" name="label">
42 + <property name="geometry">
43 + <rect>
44 + <x>90</x>
45 + <y>40</y>
46 + <width>601</width>
47 + <height>16</height>
48 + </rect>
49 + </property>
50 + <property name="font">
51 + <font>
52 + <pointsize>10</pointsize>
53 + </font>
54 + </property>
55 + <property name="text">
56 + <string>자모의 기본은 &quot;&quot;입니다.</string>
57 + </property>
58 + </widget>
59 + <widget class="QFrame" name="frame">
60 + <property name="geometry">
61 + <rect>
62 + <x>80</x>
63 + <y>30</y>
64 + <width>621</width>
65 + <height>161</height>
66 + </rect>
67 + </property>
68 + <property name="frameShape">
69 + <enum>QFrame::Box</enum>
70 + </property>
71 + <property name="frameShadow">
72 + <enum>QFrame::Raised</enum>
73 + </property>
74 + <widget class="QLabel" name="label_2">
75 + <property name="geometry">
76 + <rect>
77 + <x>10</x>
78 + <y>30</y>
79 + <width>601</width>
80 + <height>16</height>
81 + </rect>
82 + </property>
83 + <property name="font">
84 + <font>
85 + <pointsize>10</pointsize>
86 + </font>
87 + </property>
88 + <property name="text">
89 + <string>모든 자모는 하나 이상의 획으로 구성되어 있습니다.</string>
90 + </property>
91 + </widget>
92 + <widget class="QLabel" name="label_3">
93 + <property name="geometry">
94 + <rect>
95 + <x>10</x>
96 + <y>50</y>
97 + <width>601</width>
98 + <height>16</height>
99 + </rect>
100 + </property>
101 + <property name="font">
102 + <font>
103 + <pointsize>10</pointsize>
104 + </font>
105 + </property>
106 + <property name="text">
107 + <string>획은 점에서 시작해서 점으로 끝납니다.</string>
108 + </property>
109 + </widget>
110 + <widget class="QLabel" name="label_4">
111 + <property name="geometry">
112 + <rect>
113 + <x>10</x>
114 + <y>70</y>
115 + <width>601</width>
116 + <height>16</height>
117 + </rect>
118 + </property>
119 + <property name="font">
120 + <font>
121 + <pointsize>10</pointsize>
122 + </font>
123 + </property>
124 + <property name="text">
125 + <string>점의 형태는 붓을 놓을때와 뗄때(마무리 할때) 정해집니다.</string>
126 + </property>
127 + </widget>
128 + <widget class="QLabel" name="label_5">
129 + <property name="geometry">
130 + <rect>
131 + <x>10</x>
132 + <y>130</y>
133 + <width>601</width>
134 + <height>16</height>
135 + </rect>
136 + </property>
137 + <property name="font">
138 + <font>
139 + <pointsize>10</pointsize>
140 + </font>
141 + </property>
142 + <property name="text">
143 + <string>궁서체의 모든 획은 아래의 형태에서 파생됩니다.</string>
144 + </property>
145 + </widget>
146 + <widget class="QLabel" name="label_6">
147 + <property name="geometry">
148 + <rect>
149 + <x>10</x>
150 + <y>110</y>
151 + <width>601</width>
152 + <height>16</height>
153 + </rect>
154 + </property>
155 + <property name="font">
156 + <font>
157 + <pointsize>10</pointsize>
158 + </font>
159 + </property>
160 + <property name="text">
161 + <string>다음은 붓을 놓고(시작) 떼는 방법(끝)에 따른 궁서체의 6가지 획의 형태이며, </string>
162 + </property>
163 + </widget>
164 + </widget>
165 + <widget class="QPushButton" name="pButton_Start">
166 + <property name="geometry">
167 + <rect>
168 + <x>50</x>
169 + <y>0</y>
170 + <width>51</width>
171 + <height>23</height>
172 + </rect>
173 + </property>
174 + <property name="font">
175 + <font>
176 + <family>굴림</family>
177 + <pointsize>9</pointsize>
178 + </font>
179 + </property>
180 + <property name="text">
181 + <string>start</string>
182 + </property>
183 + </widget>
184 + <widget class="QFrame" name="frame_4">
185 + <property name="geometry">
186 + <rect>
187 + <x>200</x>
188 + <y>230</y>
189 + <width>381</width>
190 + <height>101</height>
191 + </rect>
192 + </property>
193 + <property name="frameShape">
194 + <enum>QFrame::Panel</enum>
195 + </property>
196 + <property name="frameShadow">
197 + <enum>QFrame::Sunken</enum>
198 + </property>
199 + <widget class="QFrame" name="box_4">
200 + <property name="geometry">
201 + <rect>
202 + <x>150</x>
203 + <y>10</y>
204 + <width>80</width>
205 + <height>80</height>
206 + </rect>
207 + </property>
208 + <property name="frameShape">
209 + <enum>QFrame::Panel</enum>
210 + </property>
211 + <property name="frameShadow">
212 + <enum>QFrame::Raised</enum>
213 + </property>
214 + <widget class="QPushButton" name="pButton_s_m">
215 + <property name="geometry">
216 + <rect>
217 + <x>10</x>
218 + <y>10</y>
219 + <width>60</width>
220 + <height>60</height>
221 + </rect>
222 + </property>
223 + <property name="text">
224 + <string/>
225 + </property>
226 + <property name="icon">
227 + <iconset>
228 + <normaloff>image_stroke/s_m.png</normaloff>image_stroke/s_m.png</iconset>
229 + </property>
230 + <property name="iconSize">
231 + <size>
232 + <width>60</width>
233 + <height>60</height>
234 + </size>
235 + </property>
236 + </widget>
237 + </widget>
238 + <widget class="QFrame" name="box_5">
239 + <property name="geometry">
240 + <rect>
241 + <x>280</x>
242 + <y>10</y>
243 + <width>80</width>
244 + <height>80</height>
245 + </rect>
246 + </property>
247 + <property name="frameShape">
248 + <enum>QFrame::Panel</enum>
249 + </property>
250 + <property name="frameShadow">
251 + <enum>QFrame::Raised</enum>
252 + </property>
253 + <widget class="QPushButton" name="pButton_s_h">
254 + <property name="geometry">
255 + <rect>
256 + <x>10</x>
257 + <y>10</y>
258 + <width>60</width>
259 + <height>60</height>
260 + </rect>
261 + </property>
262 + <property name="text">
263 + <string/>
264 + </property>
265 + <property name="icon">
266 + <iconset>
267 + <normaloff>image_stroke/s_h.png</normaloff>image_stroke/s_h.png</iconset>
268 + </property>
269 + <property name="iconSize">
270 + <size>
271 + <width>60</width>
272 + <height>60</height>
273 + </size>
274 + </property>
275 + </widget>
276 + </widget>
277 + <widget class="QFrame" name="box_8">
278 + <property name="geometry">
279 + <rect>
280 + <x>20</x>
281 + <y>10</y>
282 + <width>80</width>
283 + <height>80</height>
284 + </rect>
285 + </property>
286 + <property name="frameShape">
287 + <enum>QFrame::Panel</enum>
288 + </property>
289 + <property name="frameShadow">
290 + <enum>QFrame::Raised</enum>
291 + </property>
292 + <widget class="QPushButton" name="pButton_s_m_2">
293 + <property name="geometry">
294 + <rect>
295 + <x>10</x>
296 + <y>10</y>
297 + <width>60</width>
298 + <height>60</height>
299 + </rect>
300 + </property>
301 + <property name="text">
302 + <string/>
303 + </property>
304 + <property name="iconSize">
305 + <size>
306 + <width>60</width>
307 + <height>60</height>
308 + </size>
309 + </property>
310 + </widget>
311 + </widget>
312 + </widget>
313 + <widget class="QPushButton" name="pButton_Main">
314 + <property name="geometry">
315 + <rect>
316 + <x>0</x>
317 + <y>0</y>
318 + <width>51</width>
319 + <height>23</height>
320 + </rect>
321 + </property>
322 + <property name="font">
323 + <font>
324 + <family>굴림</family>
325 + <pointsize>9</pointsize>
326 + </font>
327 + </property>
328 + <property name="text">
329 + <string>main</string>
330 + </property>
331 + </widget>
332 + <widget class="QFrame" name="frame_5">
333 + <property name="geometry">
334 + <rect>
335 + <x>200</x>
336 + <y>340</y>
337 + <width>381</width>
338 + <height>101</height>
339 + </rect>
340 + </property>
341 + <property name="frameShape">
342 + <enum>QFrame::Panel</enum>
343 + </property>
344 + <property name="frameShadow">
345 + <enum>QFrame::Sunken</enum>
346 + </property>
347 + <widget class="QFrame" name="box_6">
348 + <property name="geometry">
349 + <rect>
350 + <x>150</x>
351 + <y>10</y>
352 + <width>80</width>
353 + <height>80</height>
354 + </rect>
355 + </property>
356 + <property name="frameShape">
357 + <enum>QFrame::Panel</enum>
358 + </property>
359 + <property name="frameShadow">
360 + <enum>QFrame::Raised</enum>
361 + </property>
362 + <widget class="QPushButton" name="pButton_m_m">
363 + <property name="geometry">
364 + <rect>
365 + <x>10</x>
366 + <y>10</y>
367 + <width>60</width>
368 + <height>60</height>
369 + </rect>
370 + </property>
371 + <property name="text">
372 + <string/>
373 + </property>
374 + <property name="icon">
375 + <iconset>
376 + <normaloff>image_stroke/m_m.png</normaloff>image_stroke/m_m.png</iconset>
377 + </property>
378 + <property name="iconSize">
379 + <size>
380 + <width>60</width>
381 + <height>60</height>
382 + </size>
383 + </property>
384 + </widget>
385 + </widget>
386 + <widget class="QFrame" name="box_9">
387 + <property name="geometry">
388 + <rect>
389 + <x>20</x>
390 + <y>10</y>
391 + <width>80</width>
392 + <height>80</height>
393 + </rect>
394 + </property>
395 + <property name="frameShape">
396 + <enum>QFrame::Panel</enum>
397 + </property>
398 + <property name="frameShadow">
399 + <enum>QFrame::Raised</enum>
400 + </property>
401 + <widget class="QPushButton" name="pButton_s_m_3">
402 + <property name="geometry">
403 + <rect>
404 + <x>10</x>
405 + <y>10</y>
406 + <width>60</width>
407 + <height>60</height>
408 + </rect>
409 + </property>
410 + <property name="text">
411 + <string/>
412 + </property>
413 + <property name="iconSize">
414 + <size>
415 + <width>60</width>
416 + <height>60</height>
417 + </size>
418 + </property>
419 + </widget>
420 + </widget>
421 + <widget class="QFrame" name="box_10">
422 + <property name="geometry">
423 + <rect>
424 + <x>280</x>
425 + <y>10</y>
426 + <width>80</width>
427 + <height>80</height>
428 + </rect>
429 + </property>
430 + <property name="frameShape">
431 + <enum>QFrame::Panel</enum>
432 + </property>
433 + <property name="frameShadow">
434 + <enum>QFrame::Raised</enum>
435 + </property>
436 + <widget class="QPushButton" name="pButton_s_m_4">
437 + <property name="geometry">
438 + <rect>
439 + <x>10</x>
440 + <y>10</y>
441 + <width>60</width>
442 + <height>60</height>
443 + </rect>
444 + </property>
445 + <property name="text">
446 + <string/>
447 + </property>
448 + <property name="iconSize">
449 + <size>
450 + <width>60</width>
451 + <height>60</height>
452 + </size>
453 + </property>
454 + </widget>
455 + </widget>
456 + </widget>
457 + <widget class="QFrame" name="frame_6">
458 + <property name="geometry">
459 + <rect>
460 + <x>200</x>
461 + <y>450</y>
462 + <width>381</width>
463 + <height>101</height>
464 + </rect>
465 + </property>
466 + <property name="frameShape">
467 + <enum>QFrame::Panel</enum>
468 + </property>
469 + <property name="frameShadow">
470 + <enum>QFrame::Sunken</enum>
471 + </property>
472 + <widget class="QFrame" name="box_3">
473 + <property name="geometry">
474 + <rect>
475 + <x>20</x>
476 + <y>10</y>
477 + <width>80</width>
478 + <height>80</height>
479 + </rect>
480 + </property>
481 + <property name="frameShape">
482 + <enum>QFrame::Panel</enum>
483 + </property>
484 + <property name="frameShadow">
485 + <enum>QFrame::Raised</enum>
486 + </property>
487 + <widget class="QPushButton" name="pButton_h_s">
488 + <property name="geometry">
489 + <rect>
490 + <x>10</x>
491 + <y>10</y>
492 + <width>60</width>
493 + <height>60</height>
494 + </rect>
495 + </property>
496 + <property name="text">
497 + <string/>
498 + </property>
499 + <property name="icon">
500 + <iconset>
501 + <normaloff>image_stroke/h_s.png</normaloff>image_stroke/h_s.png</iconset>
502 + </property>
503 + <property name="iconSize">
504 + <size>
505 + <width>60</width>
506 + <height>60</height>
507 + </size>
508 + </property>
509 + </widget>
510 + </widget>
511 + <widget class="QFrame" name="box_7">
512 + <property name="geometry">
513 + <rect>
514 + <x>150</x>
515 + <y>10</y>
516 + <width>80</width>
517 + <height>80</height>
518 + </rect>
519 + </property>
520 + <property name="frameShape">
521 + <enum>QFrame::Panel</enum>
522 + </property>
523 + <property name="frameShadow">
524 + <enum>QFrame::Raised</enum>
525 + </property>
526 + <widget class="QPushButton" name="pButton_h_m">
527 + <property name="geometry">
528 + <rect>
529 + <x>10</x>
530 + <y>10</y>
531 + <width>60</width>
532 + <height>60</height>
533 + </rect>
534 + </property>
535 + <property name="text">
536 + <string/>
537 + </property>
538 + <property name="icon">
539 + <iconset>
540 + <normaloff>image_stroke/h_m.png</normaloff>image_stroke/h_m.png</iconset>
541 + </property>
542 + <property name="iconSize">
543 + <size>
544 + <width>60</width>
545 + <height>60</height>
546 + </size>
547 + </property>
548 + </widget>
549 + </widget>
550 + <widget class="QFrame" name="box_0">
551 + <property name="geometry">
552 + <rect>
553 + <x>280</x>
554 + <y>10</y>
555 + <width>80</width>
556 + <height>80</height>
557 + </rect>
558 + </property>
559 + <property name="frameShape">
560 + <enum>QFrame::Panel</enum>
561 + </property>
562 + <property name="frameShadow">
563 + <enum>QFrame::Raised</enum>
564 + </property>
565 + <widget class="QPushButton" name="pButton_h_h">
566 + <property name="geometry">
567 + <rect>
568 + <x>10</x>
569 + <y>10</y>
570 + <width>60</width>
571 + <height>60</height>
572 + </rect>
573 + </property>
574 + <property name="text">
575 + <string/>
576 + </property>
577 + <property name="icon">
578 + <iconset>
579 + <normaloff>image_stroke/h_h.png</normaloff>image_stroke/h_h.png</iconset>
580 + </property>
581 + <property name="iconSize">
582 + <size>
583 + <width>60</width>
584 + <height>60</height>
585 + </size>
586 + </property>
587 + </widget>
588 + </widget>
589 + </widget>
590 + <widget class="QFrame" name="frame_2">
591 + <property name="geometry">
592 + <rect>
593 + <x>350</x>
594 + <y>200</y>
595 + <width>81</width>
596 + <height>21</height>
597 + </rect>
598 + </property>
599 + <property name="frameShape">
600 + <enum>QFrame::StyledPanel</enum>
601 + </property>
602 + <property name="frameShadow">
603 + <enum>QFrame::Raised</enum>
604 + </property>
605 + <widget class="QLabel" name="label_7">
606 + <property name="geometry">
607 + <rect>
608 + <x>20</x>
609 + <y>0</y>
610 + <width>56</width>
611 + <height>21</height>
612 + </rect>
613 + </property>
614 + <property name="font">
615 + <font>
616 + <pointsize>12</pointsize>
617 + </font>
618 + </property>
619 + <property name="text">
620 + <string>담담</string>
621 + </property>
622 + </widget>
623 + </widget>
624 + <widget class="QFrame" name="frame_3">
625 + <property name="geometry">
626 + <rect>
627 + <x>480</x>
628 + <y>200</y>
629 + <width>81</width>
630 + <height>21</height>
631 + </rect>
632 + </property>
633 + <property name="frameShape">
634 + <enum>QFrame::StyledPanel</enum>
635 + </property>
636 + <property name="frameShadow">
637 + <enum>QFrame::Raised</enum>
638 + </property>
639 + <widget class="QLabel" name="label_10">
640 + <property name="geometry">
641 + <rect>
642 + <x>20</x>
643 + <y>0</y>
644 + <width>56</width>
645 + <height>21</height>
646 + </rect>
647 + </property>
648 + <property name="font">
649 + <font>
650 + <pointsize>12</pointsize>
651 + </font>
652 + </property>
653 + <property name="text">
654 + <string>강조</string>
655 + </property>
656 + </widget>
657 + </widget>
658 + <widget class="QFrame" name="frame_7">
659 + <property name="geometry">
660 + <rect>
661 + <x>220</x>
662 + <y>200</y>
663 + <width>81</width>
664 + <height>21</height>
665 + </rect>
666 + </property>
667 + <property name="frameShape">
668 + <enum>QFrame::StyledPanel</enum>
669 + </property>
670 + <property name="frameShadow">
671 + <enum>QFrame::Raised</enum>
672 + </property>
673 + <widget class="QLabel" name="label_11">
674 + <property name="geometry">
675 + <rect>
676 + <x>10</x>
677 + <y>0</y>
678 + <width>56</width>
679 + <height>21</height>
680 + </rect>
681 + </property>
682 + <property name="font">
683 + <font>
684 + <pointsize>12</pointsize>
685 + </font>
686 + </property>
687 + <property name="text">
688 + <string>서서히</string>
689 + </property>
690 + </widget>
691 + </widget>
692 + <widget class="QFrame" name="frame_8">
693 + <property name="geometry">
694 + <rect>
695 + <x>100</x>
696 + <y>270</y>
697 + <width>81</width>
698 + <height>21</height>
699 + </rect>
700 + </property>
701 + <property name="frameShape">
702 + <enum>QFrame::StyledPanel</enum>
703 + </property>
704 + <property name="frameShadow">
705 + <enum>QFrame::Raised</enum>
706 + </property>
707 + <widget class="QLabel" name="label_12">
708 + <property name="geometry">
709 + <rect>
710 + <x>10</x>
711 + <y>0</y>
712 + <width>56</width>
713 + <height>21</height>
714 + </rect>
715 + </property>
716 + <property name="font">
717 + <font>
718 + <pointsize>12</pointsize>
719 + </font>
720 + </property>
721 + <property name="text">
722 + <string>서서히</string>
723 + </property>
724 + </widget>
725 + </widget>
726 + <widget class="QFrame" name="frame_9">
727 + <property name="geometry">
728 + <rect>
729 + <x>100</x>
730 + <y>380</y>
731 + <width>81</width>
732 + <height>21</height>
733 + </rect>
734 + </property>
735 + <property name="frameShape">
736 + <enum>QFrame::StyledPanel</enum>
737 + </property>
738 + <property name="frameShadow">
739 + <enum>QFrame::Raised</enum>
740 + </property>
741 + <widget class="QLabel" name="label_13">
742 + <property name="geometry">
743 + <rect>
744 + <x>20</x>
745 + <y>0</y>
746 + <width>56</width>
747 + <height>21</height>
748 + </rect>
749 + </property>
750 + <property name="font">
751 + <font>
752 + <pointsize>12</pointsize>
753 + </font>
754 + </property>
755 + <property name="text">
756 + <string>담담</string>
757 + </property>
758 + </widget>
759 + </widget>
760 + <widget class="QFrame" name="frame_10">
761 + <property name="geometry">
762 + <rect>
763 + <x>100</x>
764 + <y>480</y>
765 + <width>81</width>
766 + <height>21</height>
767 + </rect>
768 + </property>
769 + <property name="frameShape">
770 + <enum>QFrame::StyledPanel</enum>
771 + </property>
772 + <property name="frameShadow">
773 + <enum>QFrame::Raised</enum>
774 + </property>
775 + <widget class="QLabel" name="label_14">
776 + <property name="geometry">
777 + <rect>
778 + <x>20</x>
779 + <y>0</y>
780 + <width>56</width>
781 + <height>21</height>
782 + </rect>
783 + </property>
784 + <property name="font">
785 + <font>
786 + <pointsize>12</pointsize>
787 + </font>
788 + </property>
789 + <property name="text">
790 + <string>강조</string>
791 + </property>
792 + </widget>
793 + </widget>
794 + <widget class="QFrame" name="frame_11">
795 + <property name="geometry">
796 + <rect>
797 + <x>100</x>
798 + <y>200</y>
799 + <width>81</width>
800 + <height>21</height>
801 + </rect>
802 + </property>
803 + <property name="frameShape">
804 + <enum>QFrame::StyledPanel</enum>
805 + </property>
806 + <property name="frameShadow">
807 + <enum>QFrame::Raised</enum>
808 + </property>
809 + <widget class="QLabel" name="label_15">
810 + <property name="geometry">
811 + <rect>
812 + <x>10</x>
813 + <y>0</y>
814 + <width>56</width>
815 + <height>21</height>
816 + </rect>
817 + </property>
818 + <property name="font">
819 + <font>
820 + <pointsize>8</pointsize>
821 + </font>
822 + </property>
823 + <property name="text">
824 + <string>시작 \끝</string>
825 + </property>
826 + </widget>
827 + </widget>
828 + <zorder>frame</zorder>
829 + <zorder>label</zorder>
830 + <zorder>pButton_Start</zorder>
831 + <zorder>frame_4</zorder>
832 + <zorder>pButton_Main</zorder>
833 + <zorder>frame_5</zorder>
834 + <zorder>frame_6</zorder>
835 + <zorder>frame_2</zorder>
836 + <zorder>frame_3</zorder>
837 + <zorder>frame_7</zorder>
838 + <zorder>frame_8</zorder>
839 + <zorder>frame_9</zorder>
840 + <zorder>frame_10</zorder>
841 + <zorder>frame_11</zorder>
842 + </widget>
843 + </widget>
844 + <widget class="QStatusBar" name="statusbar">
845 + <property name="layoutDirection">
846 + <enum>Qt::LeftToRight</enum>
847 + </property>
848 + </widget>
849 + </widget>
850 + <resources/>
851 + <connections/>
852 +</ui>
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<ui version="4.0">
3 + <class>vowels</class>
4 + <widget class="QMainWindow" name="vowels">
5 + <property name="geometry">
6 + <rect>
7 + <x>0</x>
8 + <y>0</y>
9 + <width>801</width>
10 + <height>599</height>
11 + </rect>
12 + </property>
13 + <property name="windowTitle">
14 + <string>vowels</string>
15 + </property>
16 + <widget class="QWidget" name="centralwidget">
17 + <widget class="QPushButton" name="pButton_Main">
18 + <property name="geometry">
19 + <rect>
20 + <x>10</x>
21 + <y>10</y>
22 + <width>51</width>
23 + <height>23</height>
24 + </rect>
25 + </property>
26 + <property name="text">
27 + <string>main</string>
28 + </property>
29 + </widget>
30 + <widget class="QFrame" name="outline">
31 + <property name="geometry">
32 + <rect>
33 + <x>10</x>
34 + <y>10</y>
35 + <width>781</width>
36 + <height>561</height>
37 + </rect>
38 + </property>
39 + <property name="font">
40 + <font>
41 + <family>HY궁서B</family>
42 + <pointsize>28</pointsize>
43 + </font>
44 + </property>
45 + <property name="layoutDirection">
46 + <enum>Qt::LeftToRight</enum>
47 + </property>
48 + <property name="frameShape">
49 + <enum>QFrame::StyledPanel</enum>
50 + </property>
51 + <property name="frameShadow">
52 + <enum>QFrame::Sunken</enum>
53 + </property>
54 + <widget class="QFrame" name="semiOutline_1">
55 + <property name="geometry">
56 + <rect>
57 + <x>450</x>
58 + <y>100</y>
59 + <width>291</width>
60 + <height>101</height>
61 + </rect>
62 + </property>
63 + <property name="frameShape">
64 + <enum>QFrame::Panel</enum>
65 + </property>
66 + <property name="frameShadow">
67 + <enum>QFrame::Sunken</enum>
68 + </property>
69 + <widget class="QFrame" name="box_6">
70 + <property name="geometry">
71 + <rect>
72 + <x>80</x>
73 + <y>20</y>
74 + <width>60</width>
75 + <height>60</height>
76 + </rect>
77 + </property>
78 + <property name="frameShape">
79 + <enum>QFrame::Panel</enum>
80 + </property>
81 + <property name="frameShadow">
82 + <enum>QFrame::Raised</enum>
83 + </property>
84 + <widget class="QPushButton" name="pButton_yeo">
85 + <property name="geometry">
86 + <rect>
87 + <x>0</x>
88 + <y>0</y>
89 + <width>60</width>
90 + <height>60</height>
91 + </rect>
92 + </property>
93 + <property name="text">
94 + <string></string>
95 + </property>
96 + </widget>
97 + </widget>
98 + <widget class="QFrame" name="box_7">
99 + <property name="geometry">
100 + <rect>
101 + <x>150</x>
102 + <y>20</y>
103 + <width>60</width>
104 + <height>60</height>
105 + </rect>
106 + </property>
107 + <property name="frameShape">
108 + <enum>QFrame::Panel</enum>
109 + </property>
110 + <property name="frameShadow">
111 + <enum>QFrame::Raised</enum>
112 + </property>
113 + <widget class="QPushButton" name="pButton_e">
114 + <property name="geometry">
115 + <rect>
116 + <x>0</x>
117 + <y>0</y>
118 + <width>60</width>
119 + <height>60</height>
120 + </rect>
121 + </property>
122 + <property name="text">
123 + <string></string>
124 + </property>
125 + </widget>
126 + </widget>
127 + <widget class="QFrame" name="box_8">
128 + <property name="geometry">
129 + <rect>
130 + <x>220</x>
131 + <y>20</y>
132 + <width>60</width>
133 + <height>60</height>
134 + </rect>
135 + </property>
136 + <property name="frameShape">
137 + <enum>QFrame::Panel</enum>
138 + </property>
139 + <property name="frameShadow">
140 + <enum>QFrame::Raised</enum>
141 + </property>
142 + <widget class="QPushButton" name="pButton_ye">
143 + <property name="geometry">
144 + <rect>
145 + <x>0</x>
146 + <y>0</y>
147 + <width>60</width>
148 + <height>60</height>
149 + </rect>
150 + </property>
151 + <property name="text">
152 + <string></string>
153 + </property>
154 + </widget>
155 + </widget>
156 + <widget class="QFrame" name="box_1">
157 + <property name="geometry">
158 + <rect>
159 + <x>10</x>
160 + <y>20</y>
161 + <width>60</width>
162 + <height>60</height>
163 + </rect>
164 + </property>
165 + <property name="frameShape">
166 + <enum>QFrame::Panel</enum>
167 + </property>
168 + <property name="frameShadow">
169 + <enum>QFrame::Raised</enum>
170 + </property>
171 + <widget class="QPushButton" name="pButton_eo">
172 + <property name="geometry">
173 + <rect>
174 + <x>0</x>
175 + <y>0</y>
176 + <width>60</width>
177 + <height>60</height>
178 + </rect>
179 + </property>
180 + <property name="text">
181 + <string></string>
182 + </property>
183 + </widget>
184 + </widget>
185 + </widget>
186 + <widget class="QFrame" name="frame">
187 + <property name="geometry">
188 + <rect>
189 + <x>40</x>
190 + <y>60</y>
191 + <width>81</width>
192 + <height>31</height>
193 + </rect>
194 + </property>
195 + <property name="frameShape">
196 + <enum>QFrame::Box</enum>
197 + </property>
198 + <property name="frameShadow">
199 + <enum>QFrame::Raised</enum>
200 + </property>
201 + <widget class="QLabel" name="label">
202 + <property name="geometry">
203 + <rect>
204 + <x>10</x>
205 + <y>10</y>
206 + <width>71</width>
207 + <height>16</height>
208 + </rect>
209 + </property>
210 + <property name="font">
211 + <font>
212 + <pointsize>12</pointsize>
213 + </font>
214 + </property>
215 + <property name="text">
216 + <string>'ㅣ' 파생</string>
217 + </property>
218 + </widget>
219 + </widget>
220 + <widget class="QFrame" name="semiOutline_2">
221 + <property name="geometry">
222 + <rect>
223 + <x>450</x>
224 + <y>280</y>
225 + <width>151</width>
226 + <height>101</height>
227 + </rect>
228 + </property>
229 + <property name="frameShape">
230 + <enum>QFrame::Panel</enum>
231 + </property>
232 + <property name="frameShadow">
233 + <enum>QFrame::Sunken</enum>
234 + </property>
235 + <widget class="QFrame" name="box_2">
236 + <property name="geometry">
237 + <rect>
238 + <x>10</x>
239 + <y>20</y>
240 + <width>60</width>
241 + <height>60</height>
242 + </rect>
243 + </property>
244 + <property name="frameShape">
245 + <enum>QFrame::Panel</enum>
246 + </property>
247 + <property name="frameShadow">
248 + <enum>QFrame::Raised</enum>
249 + </property>
250 + <widget class="QPushButton" name="pButton_o">
251 + <property name="geometry">
252 + <rect>
253 + <x>0</x>
254 + <y>0</y>
255 + <width>60</width>
256 + <height>60</height>
257 + </rect>
258 + </property>
259 + <property name="text">
260 + <string></string>
261 + </property>
262 + </widget>
263 + </widget>
264 + <widget class="QFrame" name="box_13">
265 + <property name="geometry">
266 + <rect>
267 + <x>80</x>
268 + <y>20</y>
269 + <width>60</width>
270 + <height>60</height>
271 + </rect>
272 + </property>
273 + <property name="frameShape">
274 + <enum>QFrame::Panel</enum>
275 + </property>
276 + <property name="frameShadow">
277 + <enum>QFrame::Raised</enum>
278 + </property>
279 + <widget class="QPushButton" name="pButton_yo">
280 + <property name="geometry">
281 + <rect>
282 + <x>0</x>
283 + <y>0</y>
284 + <width>60</width>
285 + <height>60</height>
286 + </rect>
287 + </property>
288 + <property name="text">
289 + <string></string>
290 + </property>
291 + </widget>
292 + </widget>
293 + </widget>
294 + <widget class="QFrame" name="frame_2">
295 + <property name="geometry">
296 + <rect>
297 + <x>40</x>
298 + <y>230</y>
299 + <width>81</width>
300 + <height>31</height>
301 + </rect>
302 + </property>
303 + <property name="frameShape">
304 + <enum>QFrame::Box</enum>
305 + </property>
306 + <property name="frameShadow">
307 + <enum>QFrame::Raised</enum>
308 + </property>
309 + <widget class="QLabel" name="label_2">
310 + <property name="geometry">
311 + <rect>
312 + <x>10</x>
313 + <y>10</y>
314 + <width>61</width>
315 + <height>16</height>
316 + </rect>
317 + </property>
318 + <property name="font">
319 + <font>
320 + <pointsize>12</pointsize>
321 + </font>
322 + </property>
323 + <property name="text">
324 + <string>'ㅡ' 파생</string>
325 + </property>
326 + </widget>
327 + </widget>
328 + <widget class="QFrame" name="semiOutline_3">
329 + <property name="geometry">
330 + <rect>
331 + <x>450</x>
332 + <y>440</y>
333 + <width>221</width>
334 + <height>101</height>
335 + </rect>
336 + </property>
337 + <property name="frameShape">
338 + <enum>QFrame::Panel</enum>
339 + </property>
340 + <property name="frameShadow">
341 + <enum>QFrame::Sunken</enum>
342 + </property>
343 + <widget class="QFrame" name="box_4">
344 + <property name="geometry">
345 + <rect>
346 + <x>10</x>
347 + <y>20</y>
348 + <width>60</width>
349 + <height>60</height>
350 + </rect>
351 + </property>
352 + <property name="frameShape">
353 + <enum>QFrame::Panel</enum>
354 + </property>
355 + <property name="frameShadow">
356 + <enum>QFrame::Raised</enum>
357 + </property>
358 + <widget class="QPushButton" name="pButton_oe">
359 + <property name="geometry">
360 + <rect>
361 + <x>0</x>
362 + <y>0</y>
363 + <width>60</width>
364 + <height>60</height>
365 + </rect>
366 + </property>
367 + <property name="text">
368 + <string></string>
369 + </property>
370 + </widget>
371 + </widget>
372 + <widget class="QFrame" name="box_16">
373 + <property name="geometry">
374 + <rect>
375 + <x>80</x>
376 + <y>20</y>
377 + <width>60</width>
378 + <height>60</height>
379 + </rect>
380 + </property>
381 + <property name="frameShape">
382 + <enum>QFrame::Panel</enum>
383 + </property>
384 + <property name="frameShadow">
385 + <enum>QFrame::Raised</enum>
386 + </property>
387 + <widget class="QPushButton" name="pButton_wa">
388 + <property name="geometry">
389 + <rect>
390 + <x>0</x>
391 + <y>0</y>
392 + <width>60</width>
393 + <height>60</height>
394 + </rect>
395 + </property>
396 + <property name="text">
397 + <string></string>
398 + </property>
399 + </widget>
400 + </widget>
401 + <widget class="QFrame" name="box_17">
402 + <property name="geometry">
403 + <rect>
404 + <x>150</x>
405 + <y>20</y>
406 + <width>60</width>
407 + <height>60</height>
408 + </rect>
409 + </property>
410 + <property name="frameShape">
411 + <enum>QFrame::Panel</enum>
412 + </property>
413 + <property name="frameShadow">
414 + <enum>QFrame::Raised</enum>
415 + </property>
416 + <widget class="QPushButton" name="pButton_wae">
417 + <property name="geometry">
418 + <rect>
419 + <x>0</x>
420 + <y>0</y>
421 + <width>60</width>
422 + <height>60</height>
423 + </rect>
424 + </property>
425 + <property name="text">
426 + <string></string>
427 + </property>
428 + </widget>
429 + </widget>
430 + </widget>
431 + <widget class="QFrame" name="frame_3">
432 + <property name="geometry">
433 + <rect>
434 + <x>40</x>
435 + <y>400</y>
436 + <width>91</width>
437 + <height>31</height>
438 + </rect>
439 + </property>
440 + <property name="frameShape">
441 + <enum>QFrame::Box</enum>
442 + </property>
443 + <property name="frameShadow">
444 + <enum>QFrame::Raised</enum>
445 + </property>
446 + <widget class="QLabel" name="label_3">
447 + <property name="geometry">
448 + <rect>
449 + <x>10</x>
450 + <y>10</y>
451 + <width>81</width>
452 + <height>16</height>
453 + </rect>
454 + </property>
455 + <property name="font">
456 + <font>
457 + <pointsize>12</pointsize>
458 + </font>
459 + </property>
460 + <property name="text">
461 + <string>'ㅢ' 파생</string>
462 + </property>
463 + </widget>
464 + </widget>
465 + <widget class="QPushButton" name="pButton_Start">
466 + <property name="geometry">
467 + <rect>
468 + <x>50</x>
469 + <y>0</y>
470 + <width>51</width>
471 + <height>23</height>
472 + </rect>
473 + </property>
474 + <property name="font">
475 + <font>
476 + <family>굴림</family>
477 + <pointsize>9</pointsize>
478 + </font>
479 + </property>
480 + <property name="text">
481 + <string>start</string>
482 + </property>
483 + </widget>
484 + <widget class="QFrame" name="frame_4">
485 + <property name="geometry">
486 + <rect>
487 + <x>40</x>
488 + <y>100</y>
489 + <width>81</width>
490 + <height>101</height>
491 + </rect>
492 + </property>
493 + <property name="frameShape">
494 + <enum>QFrame::Panel</enum>
495 + </property>
496 + <property name="frameShadow">
497 + <enum>QFrame::Sunken</enum>
498 + </property>
499 + <widget class="QFrame" name="box_0">
500 + <property name="geometry">
501 + <rect>
502 + <x>10</x>
503 + <y>20</y>
504 + <width>60</width>
505 + <height>60</height>
506 + </rect>
507 + </property>
508 + <property name="frameShape">
509 + <enum>QFrame::Panel</enum>
510 + </property>
511 + <property name="frameShadow">
512 + <enum>QFrame::Raised</enum>
513 + </property>
514 + <widget class="QPushButton" name="pButton_i">
515 + <property name="geometry">
516 + <rect>
517 + <x>0</x>
518 + <y>0</y>
519 + <width>60</width>
520 + <height>60</height>
521 + </rect>
522 + </property>
523 + <property name="text">
524 + <string></string>
525 + </property>
526 + </widget>
527 + </widget>
528 + </widget>
529 + <widget class="QFrame" name="frame_5">
530 + <property name="geometry">
531 + <rect>
532 + <x>40</x>
533 + <y>280</y>
534 + <width>81</width>
535 + <height>101</height>
536 + </rect>
537 + </property>
538 + <property name="frameShape">
539 + <enum>QFrame::Panel</enum>
540 + </property>
541 + <property name="frameShadow">
542 + <enum>QFrame::Sunken</enum>
543 + </property>
544 + <widget class="QFrame" name="box_3">
545 + <property name="geometry">
546 + <rect>
547 + <x>10</x>
548 + <y>20</y>
549 + <width>60</width>
550 + <height>60</height>
551 + </rect>
552 + </property>
553 + <property name="frameShape">
554 + <enum>QFrame::Panel</enum>
555 + </property>
556 + <property name="frameShadow">
557 + <enum>QFrame::Raised</enum>
558 + </property>
559 + <widget class="QPushButton" name="pButton_eu">
560 + <property name="geometry">
561 + <rect>
562 + <x>0</x>
563 + <y>0</y>
564 + <width>60</width>
565 + <height>60</height>
566 + </rect>
567 + </property>
568 + <property name="text">
569 + <string></string>
570 + </property>
571 + </widget>
572 + </widget>
573 + </widget>
574 + <widget class="QFrame" name="frame_6">
575 + <property name="geometry">
576 + <rect>
577 + <x>140</x>
578 + <y>60</y>
579 + <width>91</width>
580 + <height>31</height>
581 + </rect>
582 + </property>
583 + <property name="frameShape">
584 + <enum>QFrame::Box</enum>
585 + </property>
586 + <property name="frameShadow">
587 + <enum>QFrame::Raised</enum>
588 + </property>
589 + <widget class="QLabel" name="label_5">
590 + <property name="geometry">
591 + <rect>
592 + <x>10</x>
593 + <y>10</y>
594 + <width>71</width>
595 + <height>16</height>
596 + </rect>
597 + </property>
598 + <property name="font">
599 + <font>
600 + <pointsize>12</pointsize>
601 + </font>
602 + </property>
603 + <property name="text">
604 + <string>외향 파생</string>
605 + </property>
606 + </widget>
607 + </widget>
608 + <widget class="QFrame" name="frame_7">
609 + <property name="geometry">
610 + <rect>
611 + <x>450</x>
612 + <y>60</y>
613 + <width>91</width>
614 + <height>31</height>
615 + </rect>
616 + </property>
617 + <property name="frameShape">
618 + <enum>QFrame::Box</enum>
619 + </property>
620 + <property name="frameShadow">
621 + <enum>QFrame::Raised</enum>
622 + </property>
623 + <widget class="QLabel" name="label_7">
624 + <property name="geometry">
625 + <rect>
626 + <x>10</x>
627 + <y>10</y>
628 + <width>71</width>
629 + <height>16</height>
630 + </rect>
631 + </property>
632 + <property name="font">
633 + <font>
634 + <pointsize>12</pointsize>
635 + </font>
636 + </property>
637 + <property name="text">
638 + <string>내향 파생</string>
639 + </property>
640 + </widget>
641 + </widget>
642 + <widget class="QFrame" name="semiOutline_4">
643 + <property name="geometry">
644 + <rect>
645 + <x>140</x>
646 + <y>280</y>
647 + <width>151</width>
648 + <height>101</height>
649 + </rect>
650 + </property>
651 + <property name="frameShape">
652 + <enum>QFrame::Panel</enum>
653 + </property>
654 + <property name="frameShadow">
655 + <enum>QFrame::Sunken</enum>
656 + </property>
657 + <widget class="QFrame" name="box_15">
658 + <property name="geometry">
659 + <rect>
660 + <x>80</x>
661 + <y>20</y>
662 + <width>60</width>
663 + <height>60</height>
664 + </rect>
665 + </property>
666 + <property name="frameShape">
667 + <enum>QFrame::Panel</enum>
668 + </property>
669 + <property name="frameShadow">
670 + <enum>QFrame::Raised</enum>
671 + </property>
672 + <widget class="QPushButton" name="pButton_yu">
673 + <property name="geometry">
674 + <rect>
675 + <x>0</x>
676 + <y>0</y>
677 + <width>60</width>
678 + <height>60</height>
679 + </rect>
680 + </property>
681 + <property name="text">
682 + <string></string>
683 + </property>
684 + </widget>
685 + </widget>
686 + <widget class="QFrame" name="box_14">
687 + <property name="geometry">
688 + <rect>
689 + <x>10</x>
690 + <y>20</y>
691 + <width>60</width>
692 + <height>60</height>
693 + </rect>
694 + </property>
695 + <property name="frameShape">
696 + <enum>QFrame::Panel</enum>
697 + </property>
698 + <property name="frameShadow">
699 + <enum>QFrame::Raised</enum>
700 + </property>
701 + <widget class="QPushButton" name="pButton_u">
702 + <property name="geometry">
703 + <rect>
704 + <x>0</x>
705 + <y>0</y>
706 + <width>60</width>
707 + <height>60</height>
708 + </rect>
709 + </property>
710 + <property name="text">
711 + <string></string>
712 + </property>
713 + </widget>
714 + </widget>
715 + </widget>
716 + <widget class="QFrame" name="semiOutline_5">
717 + <property name="geometry">
718 + <rect>
719 + <x>140</x>
720 + <y>100</y>
721 + <width>291</width>
722 + <height>101</height>
723 + </rect>
724 + </property>
725 + <property name="frameShape">
726 + <enum>QFrame::Panel</enum>
727 + </property>
728 + <property name="frameShadow">
729 + <enum>QFrame::Sunken</enum>
730 + </property>
731 + <widget class="QFrame" name="box_11">
732 + <property name="geometry">
733 + <rect>
734 + <x>80</x>
735 + <y>20</y>
736 + <width>60</width>
737 + <height>60</height>
738 + </rect>
739 + </property>
740 + <property name="frameShape">
741 + <enum>QFrame::Panel</enum>
742 + </property>
743 + <property name="frameShadow">
744 + <enum>QFrame::Raised</enum>
745 + </property>
746 + <widget class="QPushButton" name="pButton_ya">
747 + <property name="geometry">
748 + <rect>
749 + <x>0</x>
750 + <y>0</y>
751 + <width>60</width>
752 + <height>60</height>
753 + </rect>
754 + </property>
755 + <property name="text">
756 + <string></string>
757 + </property>
758 + </widget>
759 + </widget>
760 + <widget class="QFrame" name="box_9">
761 + <property name="geometry">
762 + <rect>
763 + <x>10</x>
764 + <y>20</y>
765 + <width>60</width>
766 + <height>60</height>
767 + </rect>
768 + </property>
769 + <property name="frameShape">
770 + <enum>QFrame::Panel</enum>
771 + </property>
772 + <property name="frameShadow">
773 + <enum>QFrame::Raised</enum>
774 + </property>
775 + <widget class="QPushButton" name="pButton_a">
776 + <property name="geometry">
777 + <rect>
778 + <x>0</x>
779 + <y>0</y>
780 + <width>60</width>
781 + <height>60</height>
782 + </rect>
783 + </property>
784 + <property name="text">
785 + <string></string>
786 + </property>
787 + </widget>
788 + </widget>
789 + <widget class="QFrame" name="box_10">
790 + <property name="geometry">
791 + <rect>
792 + <x>150</x>
793 + <y>20</y>
794 + <width>60</width>
795 + <height>60</height>
796 + </rect>
797 + </property>
798 + <property name="frameShape">
799 + <enum>QFrame::Panel</enum>
800 + </property>
801 + <property name="frameShadow">
802 + <enum>QFrame::Raised</enum>
803 + </property>
804 + <widget class="QPushButton" name="pButton_ae">
805 + <property name="geometry">
806 + <rect>
807 + <x>0</x>
808 + <y>0</y>
809 + <width>60</width>
810 + <height>60</height>
811 + </rect>
812 + </property>
813 + <property name="text">
814 + <string></string>
815 + </property>
816 + </widget>
817 + </widget>
818 + <widget class="QFrame" name="box_12">
819 + <property name="geometry">
820 + <rect>
821 + <x>220</x>
822 + <y>20</y>
823 + <width>60</width>
824 + <height>60</height>
825 + </rect>
826 + </property>
827 + <property name="frameShape">
828 + <enum>QFrame::Panel</enum>
829 + </property>
830 + <property name="frameShadow">
831 + <enum>QFrame::Raised</enum>
832 + </property>
833 + <widget class="QPushButton" name="pButton_yae">
834 + <property name="geometry">
835 + <rect>
836 + <x>0</x>
837 + <y>0</y>
838 + <width>60</width>
839 + <height>60</height>
840 + </rect>
841 + </property>
842 + <property name="text">
843 + <string></string>
844 + </property>
845 + </widget>
846 + </widget>
847 + </widget>
848 + <widget class="QFrame" name="semiOutline_6">
849 + <property name="geometry">
850 + <rect>
851 + <x>40</x>
852 + <y>440</y>
853 + <width>81</width>
854 + <height>101</height>
855 + </rect>
856 + </property>
857 + <property name="frameShape">
858 + <enum>QFrame::Panel</enum>
859 + </property>
860 + <property name="frameShadow">
861 + <enum>QFrame::Sunken</enum>
862 + </property>
863 + <widget class="QFrame" name="box_5">
864 + <property name="geometry">
865 + <rect>
866 + <x>10</x>
867 + <y>20</y>
868 + <width>60</width>
869 + <height>60</height>
870 + </rect>
871 + </property>
872 + <property name="frameShape">
873 + <enum>QFrame::Panel</enum>
874 + </property>
875 + <property name="frameShadow">
876 + <enum>QFrame::Raised</enum>
877 + </property>
878 + <widget class="QPushButton" name="pButton_ui">
879 + <property name="geometry">
880 + <rect>
881 + <x>0</x>
882 + <y>0</y>
883 + <width>60</width>
884 + <height>60</height>
885 + </rect>
886 + </property>
887 + <property name="text">
888 + <string></string>
889 + </property>
890 + </widget>
891 + </widget>
892 + </widget>
893 + <widget class="QFrame" name="semiOutline_7">
894 + <property name="geometry">
895 + <rect>
896 + <x>140</x>
897 + <y>440</y>
898 + <width>221</width>
899 + <height>101</height>
900 + </rect>
901 + </property>
902 + <property name="frameShape">
903 + <enum>QFrame::Panel</enum>
904 + </property>
905 + <property name="frameShadow">
906 + <enum>QFrame::Sunken</enum>
907 + </property>
908 + <widget class="QFrame" name="box_20">
909 + <property name="geometry">
910 + <rect>
911 + <x>150</x>
912 + <y>20</y>
913 + <width>60</width>
914 + <height>60</height>
915 + </rect>
916 + </property>
917 + <property name="frameShape">
918 + <enum>QFrame::Panel</enum>
919 + </property>
920 + <property name="frameShadow">
921 + <enum>QFrame::Raised</enum>
922 + </property>
923 + <widget class="QPushButton" name="pButton_we">
924 + <property name="geometry">
925 + <rect>
926 + <x>0</x>
927 + <y>0</y>
928 + <width>60</width>
929 + <height>60</height>
930 + </rect>
931 + </property>
932 + <property name="text">
933 + <string></string>
934 + </property>
935 + </widget>
936 + </widget>
937 + <widget class="QFrame" name="box_19">
938 + <property name="geometry">
939 + <rect>
940 + <x>80</x>
941 + <y>20</y>
942 + <width>60</width>
943 + <height>60</height>
944 + </rect>
945 + </property>
946 + <property name="frameShape">
947 + <enum>QFrame::Panel</enum>
948 + </property>
949 + <property name="frameShadow">
950 + <enum>QFrame::Raised</enum>
951 + </property>
952 + <widget class="QPushButton" name="pButton_wo">
953 + <property name="geometry">
954 + <rect>
955 + <x>0</x>
956 + <y>0</y>
957 + <width>60</width>
958 + <height>60</height>
959 + </rect>
960 + </property>
961 + <property name="text">
962 + <string></string>
963 + </property>
964 + </widget>
965 + </widget>
966 + <widget class="QFrame" name="box_18">
967 + <property name="geometry">
968 + <rect>
969 + <x>10</x>
970 + <y>20</y>
971 + <width>60</width>
972 + <height>60</height>
973 + </rect>
974 + </property>
975 + <property name="frameShape">
976 + <enum>QFrame::Panel</enum>
977 + </property>
978 + <property name="frameShadow">
979 + <enum>QFrame::Raised</enum>
980 + </property>
981 + <widget class="QPushButton" name="pButton_wi">
982 + <property name="geometry">
983 + <rect>
984 + <x>0</x>
985 + <y>0</y>
986 + <width>60</width>
987 + <height>60</height>
988 + </rect>
989 + </property>
990 + <property name="text">
991 + <string></string>
992 + </property>
993 + </widget>
994 + </widget>
995 + </widget>
996 + <zorder>semiOutline_1</zorder>
997 + <zorder>frame_3</zorder>
998 + <zorder>semiOutline_3</zorder>
999 + <zorder>semiOutline_2</zorder>
1000 + <zorder>frame</zorder>
1001 + <zorder>frame_2</zorder>
1002 + <zorder>pButton_Start</zorder>
1003 + <zorder>frame_4</zorder>
1004 + <zorder>frame_5</zorder>
1005 + <zorder>frame_6</zorder>
1006 + <zorder>frame_7</zorder>
1007 + <zorder>semiOutline_4</zorder>
1008 + <zorder>semiOutline_5</zorder>
1009 + <zorder>semiOutline_6</zorder>
1010 + <zorder>semiOutline_7</zorder>
1011 + </widget>
1012 + <zorder>outline</zorder>
1013 + <zorder>pButton_Main</zorder>
1014 + </widget>
1015 + <widget class="QStatusBar" name="statusbar">
1016 + <property name="layoutDirection">
1017 + <enum>Qt::LeftToRight</enum>
1018 + </property>
1019 + </widget>
1020 + </widget>
1021 + <resources/>
1022 + <connections/>
1023 +</ui>