* PyQt 내려받기: http://www.riverbankcomputing.co.uk/software/pyqt/download
(Qt Designer 의실행 파일은 %Python27_HOME%\Lib\site-packages\PyQt4\Designer.exe 이다.)
Qt Designer 는 Visual Studio 의 Visual Basic 개발 환경과 비슷한 Python GUI 개발 도구이다.
다음은 책 Hello World! Second Edition: Computer Programming for Kids and Other Beginners 의 제 20 장에 소개되어 있는 예제를 한국어로 번안한 것이다.
Qt Designer 를 실행하여 다음과 같이 "새 폼" 창에서 "Main Window" 를 선택하고 "생성" 버튼을 클릭한다.
위젯 |
텍스트 |
objectName |
Push Button |
Celsius to Fahrenheit >>> |
btn_CtoF |
Push Button |
<<< Fahrenheit to Celsius |
btn_FtoC |
Label |
Celsius |
|
Label |
Fahrenheit |
|
Line Edit |
|
editCel |
Spin Box |
|
spinFahr |
* 주의: 폰트 설정 시 한글명 폰트(예: 바탕)를 선택하면 에러가 난다.
위와 같이 디자인된 폼을 파일명 tempconv.ui 으로 저장한다.
소스 파일 tempconv.py 의 내용
# -*- encoding: utf-8 -*-
# PyQt 를 이용하는 온도 변환 프로그램
import sys
from PyQt4 import QtCore, QtGui, uic
form_class = uic.loadUiType("tempconv.ui")[0] # UI 탑재
class MyWindowClass(QtGui.QMainWindow, form_class):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.btn_CtoF.clicked.connect(self.btn_CtoF_clicked) # 버튼에 이벤트 핸들러를
self.btn_FtoC.clicked.connect(self.btn_FtoC_clicked) # 묶는다.
def btn_CtoF_clicked(self): # CtoF 버튼의 이벤트 핸들러
cel = float(self.editCel.text()) #
fahr = cel * 9 / 5.0 + 32 #
self.spinFahr.setValue(int(fahr + 0.5)) #
def btn_FtoC_clicked(self): # FtoC 버튼의 이벤트 핸들러
fahr = self.spinFahr.value() #
cel = (fahr - 32) / 9.0 * 5
self.editCel.setText(str(cel)) #
app = QtGui.QApplication(sys.argv)
myWindow = MyWindowClass(None)
myWindow.show()
app.exec_()
버튼에 이벤트 핸들러를 묶어 주는 구문은
버튼명.clicked.connect(메소드명)
이다.
실행하기:
프롬프트> python convtemp.py
'프로그래밍 > Python' 카테고리의 다른 글
PySide 를 이용한 UI 예제 (0) | 2014.02.23 |
---|---|
PyQt4 를 이용한 GUI 예제: 두 자리 수 곱셈 쉽게 하기 (0) | 2014.02.20 |
EditPlus3 에서 Python3 용 소스 파일 실행하기 (0) | 2014.01.25 |
Python 과 curses 를 이용한 카라슈바 곱셈 연습기 (0) | 2014.01.10 |
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Python (0) | 2013.08.05 |