* 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

 

 

Posted by Scripter

댓글을 달아 주세요