최원영

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
# 드론어시스트 프로그램(callyassist program)
## 요약
드론을 물리적인 힘을 제공해주는 햅틱 피드백 인터페이스로 이용하여
한글 궁서체 서예를 학습하는데 도움을 주는 프로그램
## 개발 환경
- Python
* ver : 3.8.2
- PyQt5
* ver : 5.15.2
- Qt Designer
## 타겟 기기
드론 : CoDrone Pro 모델
통신 보드 : Ble Board & CP 210 다운로드 칩
### 드론 통신 환경 설정
1. 다음 url에서 최신 버전의 USB helper 설치
http://robolink.co.kr/download.html
2. 드론 업데이트
playstore 및 appstore에 존재하는 petrone app 설치
앱에서 제공하는 드론 업데이트 실행
## Install
#### 1. GUI 적용을 위한 모듈 설치
pip install pyqt5
#### 2. 코드론 구동을 위한 모듈 설치
pip install codrone
#### 3. calliAssist 폴더에서 실행
python mainWindow.py
## 추가 첨부 파일 설명
- DroneAdaptor_LowerBody.stl : 드론 어댑터 하단부 모델링 파일
- DroneAdaptor_UpperBody.stl : 드론 어댑터 상단부 모델링 파일
* 출력 설정 : 적층높이 : 0.2mm , 외벽두께 : 1.2mm, 채우기 : 15%, 출력속도 : 60m/s
* 출력 필라멘트 소재 : PLA
- CalligraphyGuide.pdf
- CalligraphyGuide.jpg
* 출력 용지 사이즈 : A4
\ No newline at end of file
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5 import *
from PyQt5.QtCore import *
from PyQt5 import uic
import drone
from time import sleep
class Dialog(QDialog):
def __init__(self, parent):
super(Dialog,self).__init__(parent)
dialog_ui = 'ui\dialog.ui'
uic.loadUi(dialog_ui, self)
self.show()
#'ㄱ' 파생 -start
#ㄱ 다이얼로그
class Consonant_G_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_G_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('G Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoSecond)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoThird)
def ChangeButtonImage(self) :
#버튼 이미지 변경
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g1\g1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g1\g1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g2\g2"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g3\g3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\g\g3\g3"))) #라벨에 이미지추가
def SetTextBrowser(self) :
#텍스트 변경
self.textBrowser.append("ㄱ의 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄱ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
self.textBrowser.append("첫번째 획은 담담하게 시작해 담담하게 끝나고, 두번재 획은 강조되어 시작되어 서서히 끝납니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄱ'은 (모양1)을 가집니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄱ'은 (모양2)로 꺽인 선과 대각선으로 이루어집니다.")
self.textBrowser.append("첫번째 획은 강조되어 시작되고 한번 꺾인 뒤 서서히 마무리됩니다.")
self.textBrowser.append("마지막 획은 강조되어 서서히 끝나 모음과 접합니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄱ'은 (모양3)으로 두개의 직선으로 이루어집니다.<br>")
self.textBrowser.append("모드 직선은 강조되어 시작되고 서서히 끝납니다.")
self.textBrowser.append("[받침]에 결합하는 'ㄱ'은 (모양3)을 따라갑니다.")
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g1\g1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("담담 -> 담담,<br> 우측 하단으로 45°")
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g1\g1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_G_1)
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g2\g2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 서서히,<br> 우측 상단으로 30°,<br> 우측 하단으로 45°")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g2\g2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_G_2)
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\g\g3\g3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\g\g3\g3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_G_3)
#ㅋ 다이얼로그
class Consonant_K_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_K_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('K Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoSecond)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoThird)
def ChangeButtonImage(self) :
#버튼 이미지 변경
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k1\k1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k1\k1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k2\k2"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k3\k3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\k\k3\k3"))) #라벨에 이미지추가
def SetTextBrowser(self) :
#텍스트 변경
self.textBrowser.append("ㅋ 경우 위와 같이 3가지 형태로 나뉩니다.")
self.textBrowser.append("ㅋ 경우, ㄱ에서 단순히 가로 획만 추가됩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅋ'은 (모양1)로 두개의 대각선과 직선으로 만들어집니다.")
self.textBrowser.append("첫번째 획은 담담하게 시작해 담담하게 끝나고, 두번째 획은 강조되어 시작되어 서서히 끝납니다.")
self.textBrowser.append("세번째 획은 강조되어 시작되어 서서히 끝납니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅋ'은 (모양1)을 가집니다.")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅋ'은 (모양2)로 곡선, 대각선, 직선으로 이루어집니다.")
self.textBrowser.append("첫번째 획은 강조되어 시작되고 한번 꺾인 뒤 서서히 마무리됩니다.")
self.textBrowser.append("두번째 획은 강조되어 서서히 끝나 모음과 접합니다.")
self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 끝납니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅋ'은 (모양3)으로 세개의 직선으로 이루어집니다.")
self.textBrowser.append("모드 직선은 강조되어 시작되고 서서히 끝납니다.")
self.textBrowser.append("[받침]에 결합하는 'ㅋ'은 (모양3)을 따라갑니다.")
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 45°")
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k1\k1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_K_1)
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 서서히,<br> 좌측 상단으로 30°,<br> 우측 하단으로 45°")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 우측 하단으로 45°")
#세번째 획 표시
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k2\k2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_K_2)
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\k\k3\k3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("강조 -> 서서히,<br> 우측으로")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_K_3)
#'ㄱ' 파생 -end
#'ㄴ' 파생 -start
#ㄴ 다이얼로그
class Consonant_N_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_N_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('N Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoSecond)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n1\_n1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n2\_n2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n3\_n3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n3\_n3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_n\_n2\_n2"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㄴ' 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄴ'은 (모양1)로 두개의 직선으로 만들어집니다.")
self.textBrowser.append("'ㄴ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄴ'은 (모양2)을 가집니다.")
self.textBrowser.append("세로획이 가로획 보다 길고, 'ㄴ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄴ'은 (모양3)을 가집니다 .")
self.textBrowser.append("가로획이 세로획 보다 길고, 'ㄴ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄴ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㄴ'은 (모양2)를 따라갑니다.")
self.textBrowser.append("가로획이 세로획 보다 길게 작성됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n1\_n1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n1\_n1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_N_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n2\_n2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n2\_n2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 담담히,<br> 우측 상단으로 10°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_N_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_n\_n3\_n3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 서서히,<br> 아래측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_n\_n3\_n3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 담담(강조),<br> 우측 상단으로 10°")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_N_3)
#ㄷ 다이얼로그
class Consonant_D_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_D_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('D Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoSecond)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d1\d1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d2\d2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d3\d3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d3\d3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\d\d2\d2"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㄷ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
self.textBrowser.append("'ㄷ'은 단순히 ㄴ에서 강조되어 시작되고 강조되어 마무리된 획이 위에 추가됩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄷ'은 (모양1)로 세개의 직선으로 만들어집니다.")
self.textBrowser.append("'ㄷ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄷ'은 (모양2)을 가집니다.")
self.textBrowser.append("두번째 획이 세번째 획 보다 길고, 'ㄷ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄷ'은 (모양3)을 가집니다 .")
self.textBrowser.append("두번째 획이 세번째 획 보다 길고, 'ㄷ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄷ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㄷ'은 (모양2)를 따라갑니다.")
self.textBrowser.append("세번째 획이 두번째 획 보다 길게 작성됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d1\d1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_D_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d2\d2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 담담,<br> 우측 상단으로 10°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_D_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\d\d3\d3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("강조 -> 강조(담담),<br> 우측으로")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_D_3)
#ㅌ 다이얼로그
class Consonant_T_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_T_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('T Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoSecond)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t1\_t1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t2\_t2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t3\_t3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t3\_t3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_t\_t2\_t2"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅌ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
self.textBrowser.append("'ㅌ'은 단순히 ㄷ에서 강조되어 시작되고 강조되어 마무리된 획이 위에 추가됩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅌ'은 (모양1)로 네개의 직선으로 만들어집니다.")
self.textBrowser.append("'ㅌ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅌ'은 (모양2)을 가집니다.")
self.textBrowser.append("세번째 획이 네번째 획 보다 길고, 'ㅌ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅌ'은 (모양3)을 가집니다 .")
self.textBrowser.append("세번째 획이 네번째 획 보다 길고, 'ㅌ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅌ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㅌ'은 (모양2)를 따라갑니다.")
self.textBrowser.append("네번째 획이 세번째 획 보다 길게 작성됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로°")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t1\_t1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_T_3)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t2\_t2_4"))
secondDialog.image_3.setStyleSheet("border: 1px solid black;")
secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_3.setText("강조 -> 담담,<br> 우측 상단으로 10°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_T_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 강조,<br> 우측으로°")
#세번째 획
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_t\_t3\_t3_4"))
thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_3.setText("강조 -> 담담(강조),<br> 우측으로")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_T_3)
#ㄹ 다이얼로그
class Consonant_L_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_L_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('L Dialog')
self.ChangeButtonImage()
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoSecond)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l1\l1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l2\l2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l3\l3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l3\l3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\l\l2\l2"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㄹ'의 경우, 위와 같이 3가지 형태로 나뉩니다.")
self.textBrowser.append("'ㄹ'은 단순히 ㅌ에서 강조되어 시작되고 강조되어 마무리된 획이 첫번째 획 다음에 추가됩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㄹ'은 (모양1)로 다섯 개의 직선으로 만들어집니다.")
self.textBrowser.append("'ㄹ'의 마지막 획이 서서히 끝나 모음과 접합니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㄹ'은 (모양2)을 가집니다.")
self.textBrowser.append("네번째 획이 다섯 번째 획 보다 길고, 'ㅌ'의 마지막 획이 담담하게 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㄹ'은 (모양3)을 가집니다 .")
self.textBrowser.append("네번째 획이 다섯 째 획 보다 길고, 'ㅌ'의 마지막 획이 강조되어 마무리 됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㄹ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㄹ'은 (모양2)를 따라갑니다.")
self.textBrowser.append("전반적으로 가로 획이 세로 획 보다 길게 작성됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
#다섯 번째 획
firstDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l1\l1_5"))
firstDialog.image_4.setStyleSheet("border: 1px solid black;")
firstDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_4.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_L_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
#네번째 획
secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_4"))
secondDialog.image_3.setStyleSheet("border: 1px solid black;")
secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
#다섯 번째 획
secondDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l2\l2_5"))
secondDialog.image_4.setStyleSheet("border: 1px solid black;")
secondDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_4.setText("강조 -> 담담,<br> 우측 상단으로 10°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_L_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 서서히,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("강조 -> 강조,<br> 우측으로")
#네번째 획
thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_4"))
thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
#다섯 번째 획
thirdDialog.image_4.setPixmap(QPixmap("ui\image_consonants\l\l3\l3_5"))
thirdDialog.image_4.setStyleSheet("border: 1px solid black;")
thirdDialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_4.setText("강조 -> 담담(강조),<br> 우측으로")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_L_3)
#'ㄴ' 파생 -end
#'ㅁ' 파생 -start
#ㅁ 다이얼로그
class Consonant_M_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_M_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('M Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoFirst)
self.pButton_3.clicked.connect(self.GoFirst)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\m\m1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅁ'의 경우, 단순히 하나의 형태를 가집니다.<br>")
self.textBrowser.append("첫번째 획은 세로로 강조되어 시작되고 담담히 마무리되고")
self.textBrowser.append("두번째 획은 가로로 강조되어 시작되고 서서히 마무리됩니다.")
self.textBrowser.append("세번째 획은 세로로 강조되어 시작되고 서서히 마무리되고")
self.textBrowser.append("네번째 획은 가로로 강조되어 시작되고 담담히 마무리됩니다.<br>")
self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\m\m1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 10°")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\m\m1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 우측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\m\m1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\m\m1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("서서히 -> 담담(강조),<br> 우측으로")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_M_1)
#ㅂ 다이얼로그
class Consonant_B_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_B_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('B Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoFirst)
self.pButton_3.clicked.connect(self.GoFirst)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_b\_b1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅂ'의 경우, 'ㅁ'과 같이 단순히 하나의 형태를 가집니다.")
self.textBrowser.append("'ㅁ'과 다른 점은 획순이 변경되어 세로 획을 모두 마무리후 가로획을 그립니다.<br>")
self.textBrowser.append("첫번째 획은 세로로 강조되어 시작되고 담담히 마무리되고")
self.textBrowser.append("두번째 획은 첫번째 획보다 조금 위에서 세로로 강조되어 시작되고 서서히 마무리됩니다.")
self.textBrowser.append("세번째 획은 가로로 서서히 시작되어 담담히 마무리되고")
self.textBrowser.append("네번째 획은 가로로 강조되어 시작되고 담담히 마무리됩니다.<br>")
self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_b\_b1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 우측 하단으로 10°")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_b\_b1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\_b\_b1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("서서히 -> 강조,<br> 우측으로")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\_b\_b1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("서서히 -> 담담(강조),<br> 우측으로")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_B_1)
#ㅍ 다이얼로그
class Consonant_P_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_P_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('P Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoSecond)
self.pButton_3.clicked.connect(self.GoSecond)
self.pButton_4.clicked.connect(self.GoSecond)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p1\p1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\p\p2\p2"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅍ'의 경우, 2가지의 형태를 가집니다.")
self.textBrowser.append("'ㅍ'의 마지막 획이 모음과 결합되는지에 따라 형태가 달라집니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅍ'은 (모양1)로 4개의 직선으로 만들어집니다.")
self.textBrowser.append("첫번째 획은 가로로 강조되어 시작해서 강조되어 마무리됩니다.")
self.textBrowser.append("두번째 획은 세로로 강조되어 시작해서 서서히 마무리됩니다.")
self.textBrowser.append("첫번째 획은 세로로 두번째 획보다 약간 위에서 강조되어 시작해서 서서히 마무리됩니다.")
self.textBrowser.append("네번째 획은 가로로 강조되어 시작해서 서서히 마무리됩니다.")
self.textBrowser.append("마지막 획은 모음과 결합됩니다.")
self.textBrowser.append("두번째 획의 경우 네번째 획에 결합되지 않으면 날리지 않게 마무리 합니다.<br>")
self.textBrowser.append("나머지 경우의 'ㅍ'은 (모양2)로 4개의 직선으로 만들어집니다.")
self.textBrowser.append("마지막획만 서서히 마무리합니다.<br>")
self.textBrowser.append("추가적으로 위치에 따라 유동적으로 비율이 변화하며,")
self.textBrowser.append("마지막 획은 ['ㅡ' 모음]과 결합되는 경우, 강조되어 마무리되어도 됩니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\p\p1\p1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_P_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#네번째 획
secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\p\p2\p2_4"))
secondDialog.image_3.setStyleSheet("border: 1px solid black;")
secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_3.setText("강조 -> 서서히,<br> 우측 상단으로 10°")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_P_2)
#'ㅁ' 파생 -end
#'ㅅ' 파생 -start
#ㅅ 다이얼로그
class Consonant_S_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_S_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('S Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s1\s1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s2\s2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s3\s3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s3\s3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\s\s1\s1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅅ' 경우, 위와 같이 3가지 형태로 나뉩니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅅ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
self.textBrowser.append("첫번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("두번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅅ'은 (모양2)을 가집니다.")
self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
self.textBrowser.append("첫번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("두번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅅ'은 (모양3)을 가집니다 .")
self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅅ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㅅ'은 (모양1)을 따라갑니다.")
self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s1\s1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s1\s1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("서서히 -> 담담,<br> 우측 하단으로 45°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_S_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s2\s2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s2\s2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 아래측으로")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_S_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\s\s3\s3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\s\s3\s3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_S_3)
#ㅈ 다이얼로그
class Consonant_J_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_J_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('J Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j1\j1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j2\j2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j3\j3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j3\j3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\j\j1\j1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅈ' 경우, 'ㅅ'과 비슷하게 위와 같은 3가지 형태로 나뉩니다.")
self.textBrowser.append("유일한 차이점은 첫번째 획으로 강조되어 시작되고 강조되어 마무리 되는 가로획을 가집니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅈ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
self.textBrowser.append("두번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("세번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅈ'은 (모양2)을 가집니다.")
self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
self.textBrowser.append("두번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("세번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅈ'은 (모양3)을 가집니다 .")
self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅈ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㅈ'은 (모양1)을 따라갑니다.")
self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j1\j1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("서서히 -> 담담,<br> 좌측 하단으로 45°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_J_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j2\j2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 서서히,<br> 아래측으로")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_J_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 강조,<br> 우측으로")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
#세번째 획
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\j\j3\j3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_J_3)
#ㅊ 다이얼로그
class Consonant_Ch_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_Ch_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('Ch Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoSecond)
self.pButton_2.clicked.connect(self.GoThird)
self.pButton_3.clicked.connect(self.GoThird)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch1\ch1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch2\ch2"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch3\ch3"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch3\ch3"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\ch\ch1\ch1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅊ' 경우, 'ㅈ'과 비슷하게 위와 같은 3가지 형태로 나뉩니다.")
self.textBrowser.append("유일한 차이점은 첫번째 획으로 강조되어 시작되고 다담히 마무리 되는 가로획을 추가로 가집니다.<br>")
self.textBrowser.append("['l' 외향 모음]에 결합하는 'ㅈ'은 (모양1)로 두개의 대각선으로 만들어집니다.")
self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("네번째 획은 서서히 시작되어 우측 하단으로 담담히 마무리됩니다.<br>")
self.textBrowser.append("['l' 내향 모음]에 결합하는 'ㅈ'은 (모양2)을 가집니다.")
self.textBrowser.append("안으로 들어오는 모음으로 인해 두 번째 획이 아래로 향하는 직선 형태를 가지게 됩니다.")
self.textBrowser.append("세번째 획은 강조되어 시작되고 서서히 좌측 하단으로 마무리됩니다.")
self.textBrowser.append("네번째 획은 강조되어 시작되고 우측 하단으로 서서히 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 외향 모음]에 결합하는 'ㅈ'은 (모양3)을 가집니다 .")
self.textBrowser.append("(모양1)과 다른점은 비율이 세로 부분으로 납작하며, 마지막획이 강조되어 마무리됩니다.<br>")
self.textBrowser.append("['ㅡ' 내향 모음]에 결합하는 'ㅈ'은 (모양3)을 따라갑니다.<br>")
self.textBrowser.append("[받침]에 결합하는 'ㅈ'은 (모양1)을 따라갑니다.")
self.textBrowser.append("받침에서는 비율에 맞고 세로폭을 조절 합니다.")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 담담,<br> 좌측 하단으로 10°")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 강조,<br> 좌측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch1\ch1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("서서히 -> 담담,<br> 우측 하단으로 45°")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_Ch_1)
#두번째 다이얼로그
def GoSecond(self):
secondDialog = Dialog(self)
secondDialog.show()
#첫번째 획 표시
secondDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_1"))
secondDialog.image_0.setStyleSheet("border: 1px solid black;")
secondDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
#두번째 획 표시
secondDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_2"))
secondDialog.image_1.setStyleSheet("border: 1px solid black;")
secondDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_1.setText("강조 -> 강조,<br> 좌측으로")
#세번째 획
secondDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_3"))
secondDialog.image_2.setStyleSheet("border: 1px solid black;")
secondDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 45°")
#네번째 획
secondDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch2\ch2_4"))
secondDialog.image_3.setStyleSheet("border: 1px solid black;")
secondDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
secondDialog.text_3.setText("강조 -> 서서히,<br> 아래측으로")
#드론 연결
secondDialog.pButton_drone.clicked.connect(drone.Move_Ch_2)
#세번째 다이얼로그
def GoThird(self) :
thirdDialog = Dialog(self)
thirdDialog.show()
thirdDialog.image_0.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_1"))
thirdDialog.image_0.setStyleSheet("border: 1px solid black;")
thirdDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
thirdDialog.image_1.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_2"))
thirdDialog.image_1.setStyleSheet("border: 1px solid black;")
thirdDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
#세번째 획
thirdDialog.image_2.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_3"))
thirdDialog.image_2.setStyleSheet("border: 1px solid black;")
thirdDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_2.setText("강조 -> 서서히,<br> 좌측 하단으로 30°")
#네번째 획
thirdDialog.image_3.setPixmap(QPixmap("ui\image_consonants\ch\ch3\ch3_4"))
thirdDialog.image_3.setStyleSheet("border: 1px solid black;")
thirdDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
thirdDialog.text_3.setText("서서히 -> 강조,<br> 우측 하단으로 30°")
#드론 연결
thirdDialog.pButton_drone.clicked.connect(drone.Move_Ch_3)
#'ㅅ' 파생 -end
#'ㅇ' 파생 -start
#ㅇ 다이얼로그
class Consonant_Ng_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_Ng_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('Ng Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoFirst)
self.pButton_3.clicked.connect(self.GoFirst)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\_ng\_ng1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅇ' 경우, 오직 하나의 형태로 나뉩니다.<br>")
self.textBrowser.append("총 2가지의 곡선으로 이루어지는데, ")
self.textBrowser.append("첫번째 곡선의 경우 좌측으로 가는 담담히 시작해 서서히 끝나는 곡선이고")
self.textBrowser.append("두번째 곡선의 경우 우측으로 가는 담담히 시작해 서서히 끝나는 곡선입니다.<br>")
self.textBrowser.append("추가적으로 'ㅇ'은 결합되는 모음 및 위치에 따라 적절히 가로,세로 비율을 조절해줍니다.<br>")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\_ng\_ng1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("담담 -> 서서히,<br> 좌측 하단으로 <br> 반원 그리기")
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\_ng\_ng1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("담담 -> 서서히,<br> 우측 하단으로 <br> 반원 그리기")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_Ng_1)
#ㅎ 다이얼로그
class Consonant_H_Dialog(QDialog):
def __init__(self, parent):
super(Consonant_H_Dialog,self).__init__(parent)
dialog_consonant_ui = 'ui\dialog_consonant.ui'
uic.loadUi(dialog_consonant_ui, self)
self.show()
self.setWindowTitle('H Dialog')
self.ChangeButtonImage()
self.ConnectButton()
self.SetTextBrowser()
#버튼 연결 @
def ConnectButton(self) :
self.pButton_0.clicked.connect(self.GoFirst)
self.pButton_1.clicked.connect(self.GoFirst)
self.pButton_2.clicked.connect(self.GoFirst)
self.pButton_3.clicked.connect(self.GoFirst)
self.pButton_4.clicked.connect(self.GoFirst)
#버튼 이미지 변경 @
def ChangeButtonImage(self) :
self.pButton_0.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
self.pButton_1.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
self.pButton_2.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
self.pButton_3.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
self.pButton_4.setIcon(QtGui.QIcon(QPixmap("ui\image_consonants\h\h1"))) #라벨에 이미지추가
#텍스트 변경
def SetTextBrowser(self) :
self.textBrowser.append("'ㅎ' 경우, 오직 하나의 형태로 나뉩니다.")
self.textBrowser.append("'ㅇ'과 다른 점은 경우, 두가지 획이 추가되는데,")
self.textBrowser.append("첫번 째 획은 강조되어 시작되고 담담히 끝나고 두번 째 획은 강조되어 시작되고 강조되어 마무리됩니다.<br>")
self.textBrowser.append("'ㅎ'의 몸통은 'ㅇ'과 같이 총 2가지의 곡선으로 이루어지는데, ")
self.textBrowser.append("첫번째 곡선의 경우 좌측으로 가는 담담히 시작해 서서히 끝나는 곡선이고")
self.textBrowser.append("두번째 곡선의 경우 우측으로 가는 담담히 시작해 서서히 끝나는 곡선입니다.<br>")
self.textBrowser.append("추가적으로 'ㅎ'은 결합되는 모음 및 위치에 따라 적절히 가로,세로 비율을 조절해줍니다.<br>")
#첫번째 다이얼로그
def GoFirst(self) :
firstDialog = Dialog(self)
firstDialog.show()
#첫번째 획
firstDialog.image_0.setPixmap(QPixmap("ui\image_consonants\h\h1_1"))
firstDialog.image_0.setStyleSheet("border: 1px solid black;")
firstDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_0.setText("강조 -> 담담,<br> 우측 하단으로 10°")
#두번째 획
firstDialog.image_1.setPixmap(QPixmap("ui\image_consonants\h\h1_2"))
firstDialog.image_1.setStyleSheet("border: 1px solid black;")
firstDialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_1.setText("강조 -> 강조,<br> 우측으로")
#세번째 획
firstDialog.image_2.setPixmap(QPixmap("ui\image_consonants\h\h1_3"))
firstDialog.image_2.setStyleSheet("border: 1px solid black;")
firstDialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_2.setText("담담 -> 서서히,<br> 좌측 하단으로 <br> 반원 그리기")
#네번째 획
firstDialog.image_3.setPixmap(QPixmap("ui\image_consonants\h\h1_4"))
firstDialog.image_3.setStyleSheet("border: 1px solid black;")
firstDialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
firstDialog.text_3.setText("담담 -> 서서히,<br> 우측 하단으로 <br> 반원 그리기")
#드론 연결
firstDialog.pButton_drone.clicked.connect(drone.Move_H_1)
#'ㅇ' 파생 -end
from time import sleep
import CoDrone
from CoDrone import Direction
# 단순 이동
#drone.go(Direction.RIGHT,3, 100) # 방향, 시간, 세기(백분율)
#drone.go(Direction.LEFT,3, 100)
#drone.go(Direction.UP,3, 100)
#drone.go(Direction.DOWN,2, 100)
# 단순 회전
#drone.turn(Direction.LEFT, 2, 100)
#복합 이동
#drone.move(3,0,0,0,0) #args : 시간(초), roll(+:우측으로), pitch(+:앞으로), yaw(+:우회전), thorttle(+:상승)
#획구성 기본 컨셉, 예시 : 서서히 시작해서 -> 담담하게 붓떼기
#drone.move(1,100,0,0,100) # 붓 놓기, 마지막 인자는 양수일수록 획이 얇게 시작, 붓을 강조로 시작할때는 두번째 인자 약하게
#drone.move(3,100,0,0,0) # 획 진행, 마지막 인자는 양수일수록 획이 두꺼움
#drone.move(1,0,0,0,-50) # 붓 떼기, 마지막 인자는 음수일수록 강조됨
#pratice 드론 함수 - start
def Move_Right() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.go(Direction.RIGHT,3, 100) # 방향, 시간, 세기(백분율)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_Down() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.go(Direction.DOWN,3, 100) # 방향, 시간, 세기(백분율)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_DiagonalLeft() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(3,-100,-100,0,0)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_DiagonalRight() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(3,100,-100,0,0)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_CurveLeft() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(3,0,-100,-100,0)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_CurveRight() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(3,0,-100,100,0)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#pratice 드론 함수 - end
#stroke 드론 함수 - start
def Move_SoftToMid() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,0,100) # 붓 놓기, 마지막 인자는 양수일수록 획이 얇게 시작
drone.move(3,100,0,0,0) # 획 진행, 마지막 인자는 양수일수록 획이 두꺼움
drone.move(1,0,0,0,-50) # 붓 떼기, 마지막 인자는 음수일수록 강조됨
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_SoftToHard() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,0,100)
drone.move(3,100,0,0,-30)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_MidToMid() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,0,0,-50)
drone.move(3,100,0,0,-100)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_HardToSoft() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_HardToMid() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_HardToHard() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#stroke 드론 함수 - end
#consonant 드론 함수 - start
# 'ㄱ' 드론 함수
def Move_G_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-5,50,-50)
drone.move(1.5,40,-20,50,-100)
drone.move(1.5,40,-20,50,-50)
drone.move(1,0,0,50,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,-50,0,-100)
drone.move(3,-100,-50,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_G_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,50,50,-100)
drone.move(2,100,50,50,0)
drone.move(1,100,-100,50,0)
drone.move(1,0,0,50,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,-100,0,-100)
drone.move(3,-100,-100,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_G_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,50,0)
drone.move(1,0,0,50,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅋ' 드론 함수
def Move_K_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,0,50,-50)
drone.move(3,100,-50,50,0)
drone.move(1,0,0,50,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,-50,0,-100)
drone.move(3,-100,-50,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_K_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,50,50,-100)
drone.move(2,100,50,50,0)
drone.move(1,100,-100,50,0)
drone.move(1,0,0,50,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,-100,0,-100)
drone.move(3,-100,-100,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_K_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,50,0)
drone.move(1,0,0,50,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㄴ' 드론 함수
def Move_N_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_N_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_N_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㄷ' 드론 함수
def Move_D_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_D_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_D_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅌ' 드론 함수
def Move_T_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_T_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_T_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㄹ' 드론 함수
def Move_L_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯 번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,50)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_L_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_L_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) @@@
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 다섯 번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,-10,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅁ' 드론 함수
def Move_M_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,0,100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅂ' 드론 함수
def Move_B_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작) 첫번째 세로획
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 두번째 세로획
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,0,100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,0,100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅍ' 드론 함수
def Move_P_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(2,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_P_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(2,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 네번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅅ' 드론 함수
def Move_S_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-10,0,100)
drone.move(2,100,-100,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_S_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(2,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_S_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-5,0,-100)
drone.move(3,-100,-50,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 두번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-5,0,100)
drone.move(2,100,-50,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅈ' 드론 함수
def Move_J_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-10,0,100)
drone.move(2,100,-100,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_J_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(2,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_J_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-5,0,-100)
drone.move(3,-100,-50,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-5,0,100)
drone.move(2,100,-50,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅊ' 드론 함수
def Move_Ch_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-10,0,100)
drone.move(2,100,-100,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_Ch_2() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-10,0,-100)
drone.move(3,-100,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-10,0,-100)
drone.move(2,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
def Move_Ch_3() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작) 좌하단 - [강-서]
drone.move(1,-10,-5,0,-100)
drone.move(3,-100,-50,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 세번째 획 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,-5,0,100)
drone.move(2,100,-50,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅇ' 드론 함수
def Move_Ng_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,0,50,-50)
drone.move(3,-100,0,100,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,50,-50)
drone.move(3,100,0,100,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅎ' 드론 함수
def Move_H_1() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,-100,0,50,-50)
drone.move(3,-100,0,100,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기) 버퍼
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,100,0,50,-50)
drone.move(3,100,0,100,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#consonant 드론 함수 - end
#vowel 드론 함수 - start
# 'ㅣ'
def Move_I() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
# 'ㅏ'
def Move_A() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅑ'
def Move_Ya() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅐ'
def Move_Ae() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅒ'
def Move_Yae() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-50)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-50)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅓ'
def Move_Eo() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅕ'
def Move_Yeo() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅔ'
def Move_E() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅖ'
def Move_Ye() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅡ'
def Move_Eu() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅜ'
def Move_U() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅠ'
def Move_Yu() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅗ'
def Move_O() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅛ'
def Move_Yo() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅢ'
def Move_Ui() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅟ'
def Move_Wi() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅝ'
def Move_Wo() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅞ'
def Move_We() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,10,0,0,-100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅚ'
def Move_Oe() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅘ'
def Move_Wa() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#'ㅙ'
def Move_Wae() :
drone = CoDrone.CoDrone() #드론객체생성
drone.pair(drone.Nearest,'COM7') # 드론 연결 시리얼 포트가 오픈되지 않으면 자동으로 오픈
drone.all_colors(0,0,0,100) #검정 (미연결) : 연결 시 LED 소등으로 초기화
sleep(0.5)
if drone.isConnected():
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.takeoff() # 드론 동작 (모든 입력 후 8초 동안 다음 입력 기다림)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,0,-100,0,-100)
drone.move(2,0,-100,0,0)
drone.move(0.5,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,10,0,0,-100)
drone.move(3,100,0,0,0)
drone.move(1,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(0.5,100,0,0,100)
drone.move(2,100,0,0,0)
drone.move(0.5,0,0,0,-100)
drone.all_colors(255,0,0,100) # 빨강 (대기)
sleep(2)
drone.all_colors(0,0,255,100) # 파랑 (동작)
drone.move(1,0,-100,0,-100)
drone.move(3,0,-100,0,0)
drone.move(1,0,0,0,100)
drone.all_colors(0,0,0,100) # 연결 시 LED 소등으로 초기화 (미연결)
drone.emergency_stop() #모든 모터 즉시 종료
drone.send_link_disconnect() #드론 연결 종료
drone.close() #시리얼 포트를 닫습니다.
#vowel 드론 함수 - end
\ No newline at end of file
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5 import *
from PyQt5.QtCore import *
from PyQt5 import uic
from time import sleep
import dialog
import drone
#UI파일 연결, 단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
mainWindow_ui = uic.loadUiType("ui\mainWindow.ui")[0]
class CharacteristicWindow(QMainWindow):
nextCount = 0
def __init__(self, parent):
super(CharacteristicWindow, self).__init__(parent)
characteristic_ui = 'ui\characteristic.ui'
uic.loadUi(characteristic_ui, self)
self.statusBar().showMessage('Characteristic', 3000)
self.show()
self.tBrowser.setStyleSheet('font-size:15px;')
self.tBrowser.append("""<font color='blue'>[ Next ]버튼을 눌러주세요.</font>""")
self.pButton_Next.clicked.connect(self.SetNext)
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
def SetNext(self) :
if self.nextCount == 0 :
self.nextCount += 1
self.tBrowser.clear()
self.tBrowser.append("""[ Keyword : <b>글자, 자음, 모음</b> ] """)
elif self.nextCount == 1 :
self.nextCount += 1
self.tBrowser.append(
"""<br><br>한글은 조선 시대 세종대왕께서 만드신 <u>글자 체계</u>로, 한국어의 기록을 위해 제작되었습니다.""")
elif self.nextCount == 2 :
self.nextCount += 1
self.tBrowser.append(
"""<br>현대 한글을 기준으로,<br><u>자모</u>에서 글자, 글자에서 단어, 단어에서 문장으로 확장됩니다.""")
elif self.nextCount == 3 :
self.nextCount += 1
self.tBrowser.append(
"""<br>한글은 기본적으로 <u>자음</u>과 <u>모음</u>으로 구성되는데,<br>자음은 기본 자음 14자, 기본 자음들의 결합으로 만들어진 겹자모 5자로 <br>자음은 19자로 구성됩나다.""")
elif self.nextCount == 4 :
self.nextCount += 1
self.tBrowser.append(
"""모음은 기본 모음 10자, 이중모음 11자로 <br>모음은 21자로 구성되어<br>총 24자의 기본자모들이 합쳐져서 40자의 자모를 구성합니다.""")
elif self.nextCount == 5 :
self.nextCount += 1
self.tBrowser.append(
"""<br>보편적인 글자는 자모의 결합인 모아쓰기를 기준으로 이루어지며<br>한 글자는 [ 초성 + 중성 ] 혹은 [초성 + 중성 + 종성 ]의 형태로 이루어져 있습니다.""")
elif self.nextCount == 6 :
self.nextCount += 1
self.tBrowser.append(
"""초성과 종성에는 자음이 오고, 중성에는 모음이 자리합니다.<br>(종성에는 예외적으로 쌍자음 이외의 겹자음들이 존재합니다.)""")
elif self.nextCount == 7 :
self.nextCount += 1
self.tBrowser.append(
"""<br><br>+) <br>한글은 모아쓰기로 인해 경우의 수가 다른 글자보다 큽니다.<br>따라서 전산화 및 폰트 제작에 많은 노력이 들어갑니다.""")
else :
self.pButton_Next.setText('End')
pass
def GoMain(self) :
self.nextCount = 0
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
def GoStart(self) :
self.nextCount = 0
self.close()
startWindow = StartWindow(self)
startWindow.show()
class IntroWindow(QMainWindow):
nextCount_intro = 0
def __init__(self, parent):
super(IntroWindow, self).__init__(parent)
intro_ui = 'ui\introduction.ui'
uic.loadUi(intro_ui, self)
self.statusBar().showMessage('Introduction', 3000)
self.show()
self.tBrowser.setStyleSheet('font-size:15px;')
self.tBrowser.append("""<font color='blue'>[ Next ]버튼을 눌러주세요.</font>""")
self.pButton_Next.clicked.connect(self.SetNext)
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
def SetNext(self) :
if self.nextCount_intro == 0 :
self.nextCount_intro += 1
self.tBrowser.clear()
self.tBrowser.append("""[ Keyword : <b>, 궁서체, 획</b> ] """)
elif self.nextCount_intro == 1 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br><br>궁서체 서예는 다음과 같은 특성을 가지고 있습니다.""")
elif self.nextCount_intro == 2 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br><br><b>1. 하나의 글자는 다른 글자와 <u>독립적</u>으로 작성됩니다.</b>""")
elif self.nextCount_intro == 3 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br><b>2. 모음은 크게 <u>'ㅣ' 파생</u>, <u>'ㅡ' 파생</u>, <u>'ㅢ' 파생</u> 3가지로 나눌수 있습니다.</b>""")
elif self.nextCount_intro == 4 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br>[ 'ㅣ' 파생 ]<br>자음의 오른쪽에 위치합니다.<br>파생 기준인 'ㅣ'에서 추가되는 획의 위치에 따라 내향모음, 외향모음으로 구분됩니다.<br><br>'ㅣ' 외향 파생 모음 : ㅏ ㅑ ㅐ ㅒ ㅣ<br>'ㅣ' 내향 파생 모음 : ㅓ ㅕ ㅔ ㅖ""")
elif self.nextCount_intro == 5 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br>[ 'ㅡ' 파생 ]<br>자음의 아래쪽에 위치합니다.<br>파생 기준인 'ㅡ'에서 추가되는 획의 위치에 따라 내향, 외향으로 구분됩니다.<br><br>'ㅡ' 외향 파생 모음 : ㅡ ㅜ ㅠ <br>'ㅡ' 내향 파생 모음 : ㅗ ㅛ""")
elif self.nextCount_intro == 6 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br>[ 'ㅢ' 파생 ]<br>자음의 오른쪽과 아래쪽 동시에 위치합니다.<br>특이하게 'ㅢ'파생은 두가지 모음의 결합으로 형성됩니다.<br>파생 기준인 하단부의 'ㅡ'에서 추가되는 획의 위치에 따라 내향, 외향으로 구분됩니다.<br><br>'ㅢ' 외향 파생 모음 : ㅟ ㅝ ㅞ ㅢ <br>'ㅢ' 내향 파생 모음 : ㅚ ㅘ ㅙ <br><br>한 글자 내의 모음은 자음에 따라 변화하지 않습니다.""")
elif self.nextCount_intro == 7 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br><b>3. 자음은 아래와 같은 <u>기본 자음</u>에서 파생됩니다.</b><br><br> ['ㄱ' 파생] : ㄱ ㅋ ㄲ<br>['ㄴ' 파생] : ㄴ ㄷ ㄹ ㅌ ㄸ<br>['ㅁ' 파생] : ㅁ ㅂ ㅍ ㅃ<br>['ㅅ' 파생] : ㅅ ㅈ ㅊ ㅆ ㅉ<br>['ㅇ' 파생] : ㅇ ㅎ<br><br>자음은 마지막 획이 다음에 오는 외향 모음과 수직일 경우 모양이 변화할 수있습니다.""")
elif self.nextCount_intro == 8 :
self.nextCount_intro += 1
self.tBrowser.append(
"""<br>4. 한글의 모아쓰기의 구조로 인해 모든 글자는 <br><b>[ 초성 + 중성 ]</b> or <b>[ 초성 + 중성 + 종성 ]</b><br>형태를 가집니다.<br><br> [ 초성 + 중성 ] 형태의 글자는 [ 초성 + 중성 + 종성] 형태의 글자와 다르게<br> 단순히 비율적으로 종성의 부분만큼 늘어납니다.""")
else :
self.pButton_Next.setText('End')
def GoMain(self) :
self.nextCount_intro = 0
self.close()
firstWindow.statusBar().showMessage('Main', 3000)
firstWindow.show()
def GoStart(self) :
self.nextCount_intro = 0
self.close()
startWindow = StartWindow(self)
startWindow.show()
class PracticeWindow(QMainWindow):
def __init__(self, parent):
super(PracticeWindow, self).__init__(parent)
practice_ui = 'ui\practice.ui'
uic.loadUi(practice_ui, self)
self.statusBar().showMessage('practice', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.show()
self.ConnectButton()
def ConnectButton(self) :
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
self.pButton_point0.clicked.connect(self.GoPoint0)
self.pButton_point1.clicked.connect(self.GoPoint1)
self.pButton_point2.clicked.connect(self.GoPoint2)
self.pButton_point3.clicked.connect(self.GoPoint3)
self.pButton_horizontal.clicked.connect(self.GoHorizontal)
self.pButton_vertical.clicked.connect(self.GoVertical)
self.pButton_diagonal_left.clicked.connect(self.GoDiagonalLeft)
self.pButton_diagonal_right.clicked.connect(self.GoDiagonalRight)
self.pButton_curve_left.clicked.connect(self.GoCurveLeft)
self.pButton_curve_right.clicked.connect(self.GoCurveRight)
def GoPoint0(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\point0 (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("수직으로 붓을 놓습니다.<br>가볍게 점을 찍고<br>붓을 가볍게 뗍니다.<br><br><b>드론 학습 지원X</b>")
def GoPoint1(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\point1 (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("종이와 <b>45°</b>가 되게 <br>붓을 눕혀 놓습니다.<br>가볍게 점을 찍고<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>.") #라벨에 텍스트추가
def GoPoint2(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\point2 (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("종이와 <b>45 °</b>가 되게 <br>붓을 대각선으로 눕혀서 <br> 놓습니다.<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>") #라벨에 텍스트추가
def GoPoint3(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\point3 (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("종이와 <b>45 °</b>가 되게 <br>붓을 대각선으로 눕혀서 <br>위로 놓습니다.<br>붓을 가볍게 뗍니다.<br><b>드론 학습 지원X</b>") #라벨에 텍스트추가
def GoHorizontal(self) :
_dialog = dialog.Dialog(self) #다이얼로그 생성
pixmap = QPixmap("ui\image_practice\horizontal (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측으로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.show()
_dialog.pButton_drone.clicked.connect(drone.Move_Right)
def GoVertical(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\_vertical (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>아래측으로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.pButton_drone.clicked.connect(drone.Move_Down)
def GoDiagonalLeft(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\diagonal_left (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>좌측 아래로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.pButton_drone.clicked.connect(drone.Move_DiagonalLeft)
def GoDiagonalRight(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\diagonal_right (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측 아래로 이동합니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.pButton_drone.clicked.connect(drone.Move_DiagonalRight)
def GoCurveLeft(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\curve_left (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>좌측으로 호를 그립니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.pButton_drone.clicked.connect(drone.Move_CurveLeft)
def GoCurveRight(self) :
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_practice\curve_right (2)") #이미지 생성
_dialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
_dialog.text_0.setText("붓을 가볍게 놓습니다.<br>우측으로 호를 그립니다.<br>붓을 가볍게 뗍니다.") #라벨에 텍스트추가
_dialog.pButton_drone.clicked.connect(drone.Move_CurveRight)
def GoMain(self) :
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
def GoStart(self) :
self.close()
startWindow = StartWindow(self)
startWindow.show()
class StrokeWindow(QMainWindow):
def __init__(self, parent):
super(StrokeWindow, self).__init__(parent)
stroke_ui = 'ui\stroke.ui'
uic.loadUi(stroke_ui, self)
self.statusBar().showMessage('stroke', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.show()
self.ConnectButton()
def ConnectButton(self) :
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
self.pButton_s_m.clicked.connect(self.GoSoftToMid)
self.pButton_s_h.clicked.connect(self.GoSoftToHard)
self.pButton_m_m.clicked.connect(self.GoMidToMid)
self.pButton_h_s.clicked.connect(self.GoHardToSoft)
self.pButton_h_m.clicked.connect(self.GoHardToMid)
self.pButton_h_h.clicked.connect(self.GoHardToHard)
def GoSoftToMid(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\s_m (2)") #이미지 생성
strokeDialog.image_0.setPixmap(QPixmap(pixmap)) #라벨에 이미지추가
strokeDialog.image_0.setStyleSheet("border: 1px solid black;") #라벨 테두리 변경
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8)) #폰트 변경
strokeDialog.text_0.setText("붓을 살짝 놓습니다.<br>획을 서서히 늘려갑니다.<br>마무리 시<br>붓 각도를 세운 후<br>느긋히 뗍니다.") #라벨에 텍스트추가
strokeDialog.pButton_drone.clicked.connect(drone.Move_SoftToMid)
def GoSoftToHard(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\s_h (2)")
strokeDialog.image_0.setPixmap(QPixmap(pixmap))
strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
strokeDialog.text_0.setText("붓의 살짝 놓습니다.<br>획을 서서히 늘려갑니다.<br>마무리 시<br>끝 부분에 자연스럽게<br>붓 모양을 내고 뗍니다.")
strokeDialog.pButton_drone.clicked.connect(drone.Move_SoftToHard)
def GoMidToMid(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\m_m (2)")
strokeDialog.image_0.setPixmap(QPixmap(pixmap))
strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
strokeDialog.text_0.setText("붓을 수직으로<br>천천히 놓고<br>면적을 넓혔다 줄입니다.<br>마무리 시 붓을 세워서<br> 천천히 뗍니다.")
strokeDialog.pButton_drone.clicked.connect(drone.Move_MidToMid)
def GoHardToSoft(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\h_s (2)")
strokeDialog.image_0.setPixmap(QPixmap(pixmap))
strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br> 점점 가늘어지다가 <br>마무리 시 붓을 <br>가볍게 뗍니다.")
strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToSoft)
def GoHardToMid(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\h_m (2)")
strokeDialog.image_0.setPixmap(QPixmap(pixmap))
strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br>마무리 시 붓을 세워서<br>천천히 뗍니다.")
strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToMid)
def GoHardToHard(self) :
strokeDialog = dialog.Dialog(self)
strokeDialog.show()
pixmap = QPixmap("ui\image_stroke\h_h (2)")
strokeDialog.image_0.setPixmap(QPixmap(pixmap))
strokeDialog.image_0.setStyleSheet("border: 1px solid black;")
strokeDialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
strokeDialog.text_0.setText("시작 시 붓 모양이 나게 <br>세게 놓습니다.<br>끝 부분에 자연스럽게<br>붓 모양을 내고 뗍니다.")
strokeDialog.pButton_drone.clicked.connect(drone.Move_HardToHard)
def GoMain(self) :
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
def GoStart(self) :
self.close()
startWindow = StartWindow(self)
startWindow.show()
class VowelsWindow(QMainWindow):
def __init__(self, parent):
super(VowelsWindow, self).__init__(parent)
vowels_ui = 'ui\Vowels.ui'
uic.loadUi(vowels_ui, self)
self.statusBar().showMessage('vowels', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.show()
self.ConnectButton()
def ConnectButton(self) :
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
self.pButton_a.clicked.connect(self.Go_A)
self.pButton_ae.clicked.connect(self.Go_Ae)
self.pButton_e.clicked.connect(self.Go_E)
self.pButton_eo.clicked.connect(self.Go_Eo)
self.pButton_eu.clicked.connect(self.Go_Eu)
self.pButton_i.clicked.connect(self.Go_I)
self.pButton_o.clicked.connect(self.Go_O)
self.pButton_oe.clicked.connect(self.Go_Oe)
self.pButton_u.clicked.connect(self.Go_U)
self.pButton_ui.clicked.connect(self.Go_Ui)
self.pButton_wa.clicked.connect(self.Go_Wa)
self.pButton_wae.clicked.connect(self.Go_Wae)
self.pButton_we.clicked.connect(self.Go_We)
self.pButton_wi.clicked.connect(self.Go_Wi)
self.pButton_wo.clicked.connect(self.Go_Wo)
self.pButton_ya.clicked.connect(self.Go_Ya)
self.pButton_yae.clicked.connect(self.Go_Yae)
self.pButton_ye.clicked.connect(self.Go_Ye)
self.pButton_yeo.clicked.connect(self.Go_Yeo)
self.pButton_yo.clicked.connect(self.Go_Yo)
self.pButton_yu.clicked.connect(self.Go_Yu)
#'ㅏ'
def Go_A(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_a\_a_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_a\_a_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("서서 -> 강조,<br> 우측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_A)
#'ㅐ'
def Go_Ae(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_ae\_ae_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_ae\_ae_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("서서 -> 강조,<br> 우측으로 ")
pixmap = QPixmap("ui\image_vowels\_ae\_ae_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Ae)
#'ㅔ'
def Go_E(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_e\_e_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_e\_e_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_e\_e_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_E)
#'ㅓ'
def Go_Eo(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_eo\_eo_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_eo\_eo_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Eo)
#'ㅡ'
def Go_Eu(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_eu\_eu_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Eu)
#'ㅣ'
def Go_I(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_i\_i_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_I)
#'ㅗ'
def Go_O(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_o\_o_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_o\_o_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 강조 <br> 우측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_O)
#'ㅚ'
def Go_Oe(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_oe\_oe_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_oe\_oe_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_oe\_oe_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Oe)
#'ㅜ'
def Go_U(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_u\_u_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_u\_u_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_U)
#'ㅢ'
def Go_Ui(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_ui\_ui_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_ui\_ui_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Ui)
#'ㅘ'
def Go_Wa(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_wa\_wa_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_wa\_wa_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_wa\_wa_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_wa\_wa_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("서서 -> 강조 <br> 우측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_Wa)
#'ㅙ'
def Go_Wae(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_wae\_wae_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_wae\_wae_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_wae\_wae_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_wae\_wae_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("강조 -> 서서,<br> 아래측으로 길게")
pixmap = QPixmap("ui\image_vowels\_wae\_wae_5")
_dialog.image_4.setPixmap(QPixmap(pixmap))
_dialog.image_4.setStyleSheet("border: 1px solid black;")
_dialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_4.setText("서서 -> 강조 <br> 우측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_Wae)
#'ㅞ'
def Go_We(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_we\_we_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_we\_we_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_we\_we_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_we\_we_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_we\_we_5")
_dialog.image_4.setPixmap(QPixmap(pixmap))
_dialog.image_4.setStyleSheet("border: 1px solid black;")
_dialog.text_4.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_4.setText("강조 -> 서서,<br> 아래측으로 길게")
_dialog.pButton_drone.clicked.connect(drone.Move_We)
#'ㅟ'
def Go_Wi(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_wi\_wi_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_wi\_wi_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_wi\_wi_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Wi)
#'ㅝ'
def Go_Wo(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_wo\_wo_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_wo\_wo_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_wo\_wo_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_wo\_wo_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Wo)
#'ㅑ'
def Go_Ya(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_ya\_ya_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_ya\_ya_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("서서 -> 강조 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_ya\_ya_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("서서 -> 강조 <br> 우측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_Ya)
#'ㅒ'
def Go_Yae(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_yae\_yae_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_yae\_yae_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 조금<br> 더 길게")
pixmap = QPixmap("ui\image_vowels\_yae\_yae_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("서서 -> 강조 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yae\_yae_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("서서 -> 강조 <br> 우측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_Yae)
#'ㅖ'
def Go_Ye(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_ye\_ye_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_ye\_ye_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_ye\_ye_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
pixmap = QPixmap("ui\image_vowels\_ye\_ye_4")
_dialog.image_3.setPixmap(QPixmap(pixmap))
_dialog.image_3.setStyleSheet("border: 1px solid black;")
_dialog.text_3.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_3.setText("강조 -> 서서,<br> 아래측으로 조금 <br>더 길게")
_dialog.pButton_drone.clicked.connect(drone.Move_Ye)
#'ㅕ'
def Go_Yeo(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서 <br> 우측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yeo\_yeo_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Yeo)
#'ㅛ'
def Go_Yo(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_yo\_yo_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yo\_yo_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yo\_yo_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 강조 <br> 우측으로")
_dialog.pButton_drone.clicked.connect(drone.Move_Yo)
#'ㅠ'
def Go_Yu(self):
_dialog = dialog.Dialog(self)
_dialog.show()
pixmap = QPixmap("ui\image_vowels\_yu\_yu_1")
_dialog.image_0.setPixmap(QPixmap(pixmap))
_dialog.image_0.setStyleSheet("border: 1px solid black;")
_dialog.text_0.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_0.setText("강조 -> 강조 <br> 우측으로")
pixmap = QPixmap("ui\image_vowels\_yu\_yu_2")
_dialog.image_1.setPixmap(QPixmap(pixmap))
_dialog.image_1.setStyleSheet("border: 1px solid black;")
_dialog.text_1.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_1.setText("강조 -> 서서,<br> 아래측으로 짧게")
pixmap = QPixmap("ui\image_vowels\_yu\_yu_3")
_dialog.image_2.setPixmap(QPixmap(pixmap))
_dialog.image_2.setStyleSheet("border: 1px solid black;")
_dialog.text_2.setFont(QtGui.QFont('HY궁서B', 8))
_dialog.text_2.setText("강조 -> 서서,<br> 아래측으로 짧게")
_dialog.pButton_drone.clicked.connect(drone.Move_Yu)
def GoMain(self) :
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
def GoStart(self) :
self.close()
startWindow = StartWindow(self)
startWindow.show()
class ConsonantsWindow(QMainWindow):
def __init__(self, parent):
super(ConsonantsWindow, self).__init__(parent)
consonants_ui = 'ui\consonants.ui'
uic.loadUi(consonants_ui, self)
self.statusBar().showMessage('Consonants', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.show()
self.ConnectButton()
def ConnectButton(self) :
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_Start.clicked.connect(self.GoStart)
self.pButton_g.clicked.connect(self.Go_G)
self.pButton_k.clicked.connect(self.Go_K)
self.pButton_n.clicked.connect(self.Go_N)
self.pButton_d.clicked.connect(self.Go_D)
self.pButton_t.clicked.connect(self.Go_T)
self.pButton_l.clicked.connect(self.Go_L)
self.pButton_m.clicked.connect(self.Go_M)
self.pButton_b.clicked.connect(self.Go_B)
self.pButton_p.clicked.connect(self.Go_P)
self.pButton_s.clicked.connect(self.Go_S)
self.pButton_j.clicked.connect(self.Go_J)
self.pButton_ch.clicked.connect(self.Go_Ch)
self.pButton_ng.clicked.connect(self.Go_Ng)
self.pButton_h.clicked.connect(self.Go_H)
def Go_G(self) :
gDialog = dialog.Consonant_G_Dialog(self)
gDialog.show()
def Go_K(self) :
gDialog = dialog.Consonant_K_Dialog(self)
gDialog.show()
def Go_N(self) :
gDialog = dialog.Consonant_N_Dialog(self)
gDialog.show()
def Go_D(self) :
gDialog = dialog.Consonant_D_Dialog(self)
gDialog.show()
def Go_T(self) :
gDialog = dialog.Consonant_T_Dialog(self)
gDialog.show()
def Go_L(self) :
gDialog = dialog.Consonant_L_Dialog(self)
gDialog.show()
def Go_M(self) :
gDialog = dialog.Consonant_M_Dialog(self)
gDialog.show()
def Go_B(self) :
gDialog = dialog.Consonant_B_Dialog(self)
gDialog.show()
def Go_P(self) :
gDialog = dialog.Consonant_P_Dialog(self)
gDialog.show()
def Go_S(self) :
gDialog = dialog.Consonant_S_Dialog(self)
gDialog.show()
def Go_J(self) :
gDialog = dialog.Consonant_J_Dialog(self)
gDialog.show()
def Go_Ch(self) :
gDialog = dialog.Consonant_Ch_Dialog(self)
gDialog.show()
def Go_Ng(self) :
gDialog = dialog.Consonant_Ng_Dialog(self)
gDialog.show()
def Go_H(self) :
gDialog = dialog.Consonant_H_Dialog(self)
gDialog.show()
def GoMain(self) :
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
def GoStart(self) :
self.close()
startWindow = StartWindow(self)
startWindow.show()
class StartWindow(QMainWindow):
def __init__(self, parent):
super(StartWindow, self).__init__(parent)
start_ui = 'ui\start.ui'
uic.loadUi(start_ui, self)
self.statusBar().showMessage('Start', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.show()
self.pButton_Main.clicked.connect(self.GoMain)
self.pButton_0.clicked.connect(self.GoCharateristic)
self.pButton_1.clicked.connect(self.GoIntroduction)
self.pButton_2.clicked.connect(self.GoPractice)
self.pButton_3.clicked.connect(self.GoStroke)
self.pButton_4.clicked.connect(self.GoConsonants)
self.pButton_5.clicked.connect(self.GoVowels)
def GoCharateristic(self) :
self.hide()
characteristicWindow = CharacteristicWindow(self)
characteristicWindow.show()
def GoIntroduction(self) :
self.hide()
introWindow = IntroWindow(self)
introWindow.show()
def GoPractice(self) :
self.hide()
practiceWindow = PracticeWindow(self)
practiceWindow.show()
def GoStroke(self) :
self.hide()
strokeWindow = StrokeWindow(self)
strokeWindow.show()
def GoVowels(self) :
self.hide()
vowelWindow = VowelsWindow(self)
vowelWindow.show()
def GoConsonants(self) :
self.hide()
consonantsWindow = ConsonantsWindow(self)
consonantsWindow.show()
def GoMain(self) :
self.hide()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
class InfoWindow(QMainWindow):
def __init__(self, parent):
super(InfoWindow, self).__init__(parent)
info_ui = 'ui\info.ui'
uic.loadUi(info_ui, self)
self.show()
self.statusBar().showMessage('Info', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.pButton_Main.clicked.connect(self.GoMain)
def GoMain(self) :
self.close()
firstWindow.show()
firstWindow.statusBar().showMessage('Main', 3000)
class StatusWindow(QMainWindow):
def __init__(self, parent):
super(StatusWindow, self).__init__(parent)
status_ui = 'ui\status.ui'
uic.loadUi(status_ui, self)
self.show()
self.statusBar().showMessage('Status', 3000)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.pButton_Check.clicked.connect(self.Check)
self.pButton_Main.clicked.connect(self.GoMain)
def Check(self) :
self.tBrowser.clear()
sleep(10)
self.tBrowser.append('드론의 연결 상태를 체크합니다.')
sleep(10)
self.tBrowser.append("드론은 현재 통신 가능한 상태입니다.")
sleep(10)
self.tBrowser.append("확인을 종료합니다.")
sleep(10)
def GoMain(self) :
self.hide()
firstWindow.statusBar().showMessage('Main', 3000)
firstWindow.show()
class MainWindow(QMainWindow, mainWindow_ui) :
def __init__(self) :
super().__init__()
self.setupUi(self)
self.setWindowTitle('Calligraphy Assist Program By Drone')
self.setWindowIcon(QIcon('icon.png'))
self.statusBar().showMessage('Main', 3000)
self.pButton_Start.clicked.connect(self.Start)
self.pButton_Info.clicked.connect(self.Info)
self.pButton_End.clicked.connect(self.End)
def Start(self) :
self.hide()
window = StartWindow(self)
window.show()
def Info(self) :
self.hide()
window = InfoWindow(self)
window.show()
def End(self) :
sys.exit()
if __name__ == "__main__" :
app = QApplication(sys.argv) #QApplication : 프로그램을 실행시켜주는 클래스
firstWindow = MainWindow() #WindowClass의 인스턴스 생성
firstWindow.show() #프로그램 화면을 보여주는 코드
app.exec_() #프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>characteristic</class>
<widget class="QMainWindow" name="characteristic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>characteristic</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>701</width>
<height>441</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QTextBrowser" name="tBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>681</width>
<height>421</height>
</rect>
</property>
</widget>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>50</x>
<y>40</y>
<width>181</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 0 . - 한글의 특성</string>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>40</x>
<y>30</y>
<width>191</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QPushButton" name="pButton_Next">
<property name="geometry">
<rect>
<x>670</x>
<y>520</y>
<width>71</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Next</string>
</property>
</widget>
<zorder>frame_2</zorder>
<zorder>semiOutline_2</zorder>
<zorder>label_2</zorder>
<zorder>pButton_Start</zorder>
<zorder>pButton_Next</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>consonants</class>
<widget class="QMainWindow" name="consonants">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>consonants</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_11">
<property name="geometry">
<rect>
<x>520</x>
<y>270</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_pp">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_15">
<property name="geometry">
<rect>
<x>520</x>
<y>360</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ss">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_16">
<property name="geometry">
<rect>
<x>620</x>
<y>360</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_jj">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_7">
<property name="geometry">
<rect>
<x>520</x>
<y>180</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_tt">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_2">
<property name="geometry">
<rect>
<x>520</x>
<y>90</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_kk">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_1">
<property name="geometry">
<rect>
<x>190</x>
<y>80</y>
<width>301</width>
<height>461</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_6">
<property name="geometry">
<rect>
<x>210</x>
<y>100</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_l">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_5">
<property name="geometry">
<rect>
<x>110</x>
<y>100</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_t">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_4">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_d">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_13">
<property name="geometry">
<rect>
<x>10</x>
<y>280</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_j">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_14">
<property name="geometry">
<rect>
<x>110</x>
<y>280</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ch">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_18">
<property name="geometry">
<rect>
<x>10</x>
<y>370</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_h">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_1">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_k">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_10">
<property name="geometry">
<rect>
<x>110</x>
<y>190</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_p">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_9">
<property name="geometry">
<rect>
<x>10</x>
<y>190</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_b">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>510</x>
<y>80</y>
<width>201</width>
<height>461</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>90</x>
<y>50</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>기본자음</string>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>80</x>
<y>40</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>520</x>
<y>50</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>겹자음</string>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>510</x>
<y>40</y>
<width>71</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>70</x>
<y>80</y>
<width>101</width>
<height>461</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_8">
<property name="geometry">
<rect>
<x>10</x>
<y>190</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_m">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_0">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_g">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_12">
<property name="geometry">
<rect>
<x>10</x>
<y>280</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_n">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_17">
<property name="geometry">
<rect>
<x>10</x>
<y>370</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ng">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<zorder>frame_2</zorder>
<zorder>semiOutline_1</zorder>
<zorder>frame</zorder>
<zorder>semiOutline_2</zorder>
<zorder>box_11</zorder>
<zorder>box_15</zorder>
<zorder>box_16</zorder>
<zorder>box_7</zorder>
<zorder>box_2</zorder>
<zorder>label</zorder>
<zorder>label_2</zorder>
<zorder>pButton_Start</zorder>
<zorder>frame_4</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>695</width>
<height>441</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>160</x>
<y>230</y>
<width>511</width>
<height>201</height>
</rect>
</property>
<property name="html">
<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;
&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;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Gulim'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&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;
&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;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;
&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;
&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;
&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;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;
&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;
&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;
&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;
&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;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;
&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>
</property>
</widget>
<widget class="QFrame" name="frame_0">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>120</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="text_0">
<property name="geometry">
<rect>
<x>0</x>
<y>120</y>
<width>121</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<family>Adobe Arabic</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="image_0">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_1">
<property name="geometry">
<rect>
<x>160</x>
<y>20</y>
<width>120</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="text_1">
<property name="geometry">
<rect>
<x>0</x>
<y>120</y>
<width>121</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<family>Adobe Arabic</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="image_1">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>290</x>
<y>20</y>
<width>120</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="text_2">
<property name="geometry">
<rect>
<x>0</x>
<y>120</y>
<width>121</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<family>Adobe Arabic</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="image_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>420</x>
<y>20</y>
<width>120</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="text_3">
<property name="geometry">
<rect>
<x>0</x>
<y>120</y>
<width>121</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<family>Adobe Arabic</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="image_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>550</x>
<y>20</y>
<width>120</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="text_4">
<property name="geometry">
<rect>
<x>0</x>
<y>120</y>
<width>121</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<family>Adobe Arabic</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="image_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>20</x>
<y>270</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>120</width>
<height>120</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QPushButton" name="pButton_drone">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_practice/drone.png</normaloff>
<normalon>image_practice/drone.png</normalon>
<disabledoff>image_practice/drone.png</disabledoff>
<disabledon>image_practice/drone.png</disabledon>
<activeoff>image_practice/drone.png</activeoff>
<activeon>image_practice/drone.png</activeon>image_practice/drone.png</iconset>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<zorder>frame_0</zorder>
<zorder>textBrowser</zorder>
<zorder>frame_1</zorder>
<zorder>frame_2</zorder>
<zorder>frame_3</zorder>
<zorder>frame_4</zorder>
<zorder>frame</zorder>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>695</width>
<height>441</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QFrame" name="frame_0">
<property name="geometry">
<rect>
<x>30</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_0">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_1">
<property name="geometry">
<rect>
<x>160</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_1">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>290</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>420</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>550</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>40</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅣ' 외향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>170</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅣ'내향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_6">
<property name="geometry">
<rect>
<x>300</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅡ' 외향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_7">
<property name="geometry">
<rect>
<x>430</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅡ' 내향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_8">
<property name="geometry">
<rect>
<x>560</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>40</x>
<y>10</y>
<width>31</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>받침</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_9">
<property name="geometry">
<rect>
<x>40</x>
<y>20</y>
<width>621</width>
<height>61</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>자음의 경우 받침을 제외하고 같이 모아 써지는 모음에 따라 모양이 달라질 수 있습니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_9">
<property name="geometry">
<rect>
<x>20</x>
<y>30</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>해당 자음 버튼을 눌러 학습해봅시다.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_10">
<property name="geometry">
<rect>
<x>40</x>
<y>280</y>
<width>621</width>
<height>151</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>601</width>
<height>131</height>
</rect>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>InfoWindow</class>
<widget class="QMainWindow" name="InfoWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>140</x>
<y>270</y>
<width>521</width>
<height>261</height>
</rect>
</property>
<property name="html">
<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;
&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;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Gulim'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&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;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;
&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;
&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;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;
&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;
&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;
&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;
&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;
&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;
&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;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;
&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;
&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;
&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;
&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;
&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;
&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>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>170</x>
<y>100</y>
<width>441</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>179</x>
<y>110</y>
<width>421</width>
<height>61</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<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>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</widget>
<zorder>frame_2</zorder>
<zorder>pButton_Main</zorder>
<zorder>textBrowser</zorder>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>introduction</class>
<widget class="QMainWindow" name="introduction">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>introduction</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>701</width>
<height>441</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QTextBrowser" name="tBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>681</width>
<height>421</height>
</rect>
</property>
</widget>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>50</x>
<y>40</y>
<width>251</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 1 . - 한글 서예에 대한 이해</string>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>40</x>
<y>30</y>
<width>261</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QPushButton" name="pButton_Next">
<property name="geometry">
<rect>
<x>670</x>
<y>520</y>
<width>71</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Next</string>
</property>
</widget>
<zorder>frame_2</zorder>
<zorder>semiOutline_2</zorder>
<zorder>label_2</zorder>
<zorder>pButton_Start</zorder>
<zorder>pButton_Next</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>179</x>
<y>110</y>
<width>441</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>421</width>
<height>61</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<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>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>240</x>
<y>300</y>
<width>301</width>
<height>201</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="pButton_Start">
<property name="text">
<string>시작</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pButton_Info">
<property name="text">
<string>정보</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pButton_End">
<property name="text">
<string>종료</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<zorder>frame_2</zorder>
<zorder>frame</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>practice</class>
<widget class="QMainWindow" name="practice">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>597</height>
</rect>
</property>
<property name="windowTitle">
<string>practice</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>40</x>
<y>60</y>
<width>211</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>191</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 2. - 붓과 친해지기</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>40</x>
<y>110</y>
<width>701</width>
<height>111</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>681</width>
<height>91</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>671</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>구체적인 궁서체 서예 학습 전에</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>671</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>드론과 함께 학습하는 방식에 익숙해져 봅시다.</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>671</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>아래에 있는 버튼을 클릭해보세요.</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_9">
<property name="geometry">
<rect>
<x>640</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_6">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_curve_right">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::WheelFocus</enum>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/curve_right.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_12">
<property name="geometry">
<rect>
<x>520</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_10">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_curve_left">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/curve_left.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_10">
<property name="geometry">
<rect>
<x>400</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_7">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_diagonal_right">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/diagonal_right.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_11">
<property name="geometry">
<rect>
<x>280</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_8">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_diagonal_left">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/diagonal_left.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_13">
<property name="geometry">
<rect>
<x>160</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_11">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_vertical">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/vertical.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_14">
<property name="geometry">
<rect>
<x>40</x>
<y>430</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_13">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_horizontal">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/horizontal.png</normalon>
</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>30</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>40</x>
<y>380</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>기본 획</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_15">
<property name="geometry">
<rect>
<x>40</x>
<y>270</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_14">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_point0">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/point0.png</normalon>
</iconset>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>40</x>
<y>230</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>기본 점</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_16">
<property name="geometry">
<rect>
<x>160</x>
<y>270</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_15">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_point1">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/point1.png</normalon>
</iconset>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_17">
<property name="geometry">
<rect>
<x>280</x>
<y>270</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_16">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_point2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/point2.png</normalon>
</iconset>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_18">
<property name="geometry">
<rect>
<x>400</x>
<y>270</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_17">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_point3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normalon>image_practice/point3.png</normalon>
</iconset>
</property>
</widget>
</widget>
</widget>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>StartWindow</class>
<widget class="QMainWindow" name="StartWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>StartWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>Main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="semiOutline_1">
<property name="geometry">
<rect>
<x>80</x>
<y>100</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_8">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>261</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_0">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>261</width>
<height>81</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>한글의 특성</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>80</x>
<y>60</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 0.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>80</x>
<y>220</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 2.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>80</x>
<y>260</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_10">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>붓과 친해지기</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_3">
<property name="geometry">
<rect>
<x>420</x>
<y>100</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_14">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_1">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>서예에 대한 이해</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>420</x>
<y>60</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 1.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_4">
<property name="geometry">
<rect>
<x>420</x>
<y>260</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_18">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>자모의 기본 - 획</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>420</x>
<y>220</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_10">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 3.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_5">
<property name="geometry">
<rect>
<x>80</x>
<y>420</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_19">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_4">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>한글의 자모 - 자음</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>80</x>
<y>380</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_11">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 4.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_6">
<property name="geometry">
<rect>
<x>420</x>
<y>420</y>
<width>281</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_21">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_5">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>260</width>
<height>80</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>한글의 자모 - 모음</string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_6">
<property name="geometry">
<rect>
<x>420</x>
<y>380</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_13">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 5.</string>
</property>
</widget>
</widget>
<zorder>frame</zorder>
<zorder>semiOutline_1</zorder>
<zorder>frame_2</zorder>
<zorder>semiOutline_2</zorder>
<zorder>semiOutline_3</zorder>
<zorder>frame_3</zorder>
<zorder>semiOutline_4</zorder>
<zorder>frame_4</zorder>
<zorder>semiOutline_5</zorder>
<zorder>frame_5</zorder>
<zorder>semiOutline_6</zorder>
<zorder>frame_6</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>stroke</class>
<widget class="QMainWindow" name="stroke">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>stroke</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>90</x>
<y>40</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>자모의 기본은 &quot;&quot;입니다.</string>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>80</x>
<y>30</y>
<width>621</width>
<height>161</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>모든 자모는 하나 이상의 획으로 구성되어 있습니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>획은 점에서 시작해서 점으로 끝납니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>점의 형태는 붓을 놓을때와 뗄때(마무리 할때) 정해집니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>궁서체의 모든 획은 아래의 형태에서 파생됩니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>10</x>
<y>110</y>
<width>601</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>다음은 붓을 놓고(시작) 떼는 방법(끝)에 따른 궁서체의 6가지 획의 형태이며, </string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>200</x>
<y>230</y>
<width>381</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_4">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s_m">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/s_m.png</normaloff>image_stroke/s_m.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_5">
<property name="geometry">
<rect>
<x>280</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s_h">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/s_h.png</normaloff>image_stroke/s_h.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_8">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s_m_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>200</x>
<y>340</y>
<width>381</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_6">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_m_m">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/m_m.png</normaloff>image_stroke/m_m.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_9">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s_m_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_10">
<property name="geometry">
<rect>
<x>280</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_s_m_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_6">
<property name="geometry">
<rect>
<x>200</x>
<y>450</y>
<width>381</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_3">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_h_s">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/h_s.png</normaloff>image_stroke/h_s.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_7">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_h_m">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/h_m.png</normaloff>image_stroke/h_m.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_0">
<property name="geometry">
<rect>
<x>280</x>
<y>10</y>
<width>80</width>
<height>80</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_h_h">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>image_stroke/h_h.png</normaloff>image_stroke/h_h.png</iconset>
</property>
<property name="iconSize">
<size>
<width>60</width>
<height>60</height>
</size>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>350</x>
<y>200</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>담담</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>480</x>
<y>200</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_10">
<property name="geometry">
<rect>
<x>20</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>강조</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_7">
<property name="geometry">
<rect>
<x>220</x>
<y>200</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_11">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>서서히</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_8">
<property name="geometry">
<rect>
<x>100</x>
<y>270</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_12">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>서서히</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_9">
<property name="geometry">
<rect>
<x>100</x>
<y>380</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_13">
<property name="geometry">
<rect>
<x>20</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>담담</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_10">
<property name="geometry">
<rect>
<x>100</x>
<y>480</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_14">
<property name="geometry">
<rect>
<x>20</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>강조</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_11">
<property name="geometry">
<rect>
<x>100</x>
<y>200</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_15">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>56</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>시작 \끝</string>
</property>
</widget>
</widget>
<zorder>frame</zorder>
<zorder>label</zorder>
<zorder>pButton_Start</zorder>
<zorder>frame_4</zorder>
<zorder>pButton_Main</zorder>
<zorder>frame_5</zorder>
<zorder>frame_6</zorder>
<zorder>frame_2</zorder>
<zorder>frame_3</zorder>
<zorder>frame_7</zorder>
<zorder>frame_8</zorder>
<zorder>frame_9</zorder>
<zorder>frame_10</zorder>
<zorder>frame_11</zorder>
</widget>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>vowels</class>
<widget class="QMainWindow" name="vowels">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>vowels</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="semiOutline_1">
<property name="geometry">
<rect>
<x>450</x>
<y>100</y>
<width>291</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_6">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_yeo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_7">
<property name="geometry">
<rect>
<x>150</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_e">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_8">
<property name="geometry">
<rect>
<x>220</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ye">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_1">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_eo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>40</x>
<y>60</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>'ㅣ' 파생</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>450</x>
<y>280</y>
<width>151</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_2">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_o">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_13">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_yo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>40</x>
<y>230</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>'ㅡ' 파생</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_3">
<property name="geometry">
<rect>
<x>450</x>
<y>440</y>
<width>221</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_4">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_oe">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_16">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_wa">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_17">
<property name="geometry">
<rect>
<x>150</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_wae">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>40</x>
<y>400</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>'ㅢ' 파생</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>40</x>
<y>100</y>
<width>81</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_0">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_i">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>40</x>
<y>280</y>
<width>81</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_3">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_eu">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="frame_6">
<property name="geometry">
<rect>
<x>140</x>
<y>60</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>외향 파생</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_7">
<property name="geometry">
<rect>
<x>450</x>
<y>60</y>
<width>91</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>내향 파생</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_4">
<property name="geometry">
<rect>
<x>140</x>
<y>280</y>
<width>151</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_15">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_yu">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_14">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_u">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_5">
<property name="geometry">
<rect>
<x>140</x>
<y>100</y>
<width>291</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_11">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ya">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_9">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_a">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_10">
<property name="geometry">
<rect>
<x>150</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ae">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_12">
<property name="geometry">
<rect>
<x>220</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_yae">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_6">
<property name="geometry">
<rect>
<x>40</x>
<y>440</y>
<width>81</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_5">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_ui">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<widget class="QFrame" name="semiOutline_7">
<property name="geometry">
<rect>
<x>140</x>
<y>440</y>
<width>221</width>
<height>101</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="box_20">
<property name="geometry">
<rect>
<x>150</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_we">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_19">
<property name="geometry">
<rect>
<x>80</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_wo">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
<widget class="QFrame" name="box_18">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_wi">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>60</width>
<height>60</height>
</rect>
</property>
<property name="text">
<string></string>
</property>
</widget>
</widget>
</widget>
<zorder>semiOutline_1</zorder>
<zorder>frame_3</zorder>
<zorder>semiOutline_3</zorder>
<zorder>semiOutline_2</zorder>
<zorder>frame</zorder>
<zorder>frame_2</zorder>
<zorder>pButton_Start</zorder>
<zorder>frame_4</zorder>
<zorder>frame_5</zorder>
<zorder>frame_6</zorder>
<zorder>frame_7</zorder>
<zorder>semiOutline_4</zorder>
<zorder>semiOutline_5</zorder>
<zorder>semiOutline_6</zorder>
<zorder>semiOutline_7</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>