티스토리 뷰
PyQt
Spec
iMac (Retina 5K, 27-inch, 2017)
macOS Sierra (version 10.12.6)
install (개인용으로 작성함)
$ pyenv virtualenv 3.6.4 pyqt
$ cd /you/want/path
$ pyenv activate pyqt
$ pip3 install PyQt5
install Qt (site)
UI 작업을 할 수 있는 Qt Creator가 들어있는 작업도구.Qf Widget Application
을 생성하면, 기본적으로 .ui
이 존재한다.
이 파일을 열심히 작업해서, 저장하고 위치를 기억한다.
그리고 아래 명령을 실행하면 .ui
파일이 .py
로 변경된다.
$ pyenv activate pyqt # PyQt5가 설치 되어있어야 함.
$ pyuic5 [.ui위치].ui [저장위치].py
PyQt 기본적인 구조
Form
__init__
init_widget()
init_widget()
# 레이아웃 설정 및 시그널 슬롯 연결
# 만든 슬롯을 widget에 추가
Qt Creator와 연계 작업
여기서 QtCreator는 설치했다고 가정한다.
- 설치 위치로 이동해서
Qt Creator
를 실행한다. Cmd + n
를 눌러서 새 프로젝트를 연다.Qt Designer Form
을 선택한다.Widget
을 선택한다.Path
를 설정해주고 프로젝트를 생성한다.- Project가 열리면
Form
을 열고 .ui파일을 더블클릭한다. - 모든 작업을 마친 후
Cmd + s
를 눌러 저장한다. - 5에서 저장한
Path
로 이동하여 복사한다. - Python Project폴더에 붙여넣는다.
- Code에서 해당
.ui
를 불러온다.self.ui = uic.loadUi("form.ui", self)
content
Repeat work (참고사이트)
선언 및 정의
from PyQt5.QtCore import Qt
from PyQt5.QtCore import QThread
from PyQt5.QtCore import pyqtSignal
class TicGenerator(QThread):
"""
5초마다 틱 신호를 전달
"""
# 사용자 정의 시그널 선언
# 외부에서 사용할때 tic대신 Tic을 이용하여 호출할 수 있다.
# Qt의 시그널 및 슬롯 이름은 Camel을 사용하기 때문에 파이썬의 PEP8을 지키면서 작성한다면 name을 반드시 사용
tic = pyqtSignal(name="Tic")
def __init__(self):
QThread.__init__(self)
def __del__(self):
self.wait()
def run(self):
while True:
t = int(time.time())
if not t % 5 == 0:
self.usleep(1)
continue
self.Tic.emit()
self.msleep(1000)
사용
self.tic_gen = TicGenerator()
self.tic_gen.start()
'Develop > Python' 카테고리의 다른 글
[Python] 변수에 메서드 할당하기 (0) | 2018.06.10 |
---|---|
[PyQt] Qmessage, 일명 Popup 띄우기 (0) | 2018.06.03 |
라즈베리파이 우분투에 Python 설치하기 (2) | 2018.05.20 |
[Python] 전역 변수 (0) | 2018.04.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크