python 과 Qt를 이용하여 GUI 프로그래밍하는 법을 알아보도록 하겠습니다.
python 과 Qt를 이용하여 GUI 프로그래밍 하는 방법을 알아보도록 하겠습니다.
1. Qt를 설치 합니다.
파일 다운로드 한 후 인스톨을 완료 합니다.
2. PyQt4 를 설치합니다.
http://www.riverbankcomputing.co.uk/software/pyqt/download
파일을 다운로드 한 후 인스톨을 완료 합니다.
3. Qt를 이용하여 레이아웃을 작성해 봅시다.
Designer 를 실행한 후 Widget을 생성 합니다.
Vertical Layout을 선택하여 올립니다.
Layout 을 클릭한 후 빈공간에 오른쪽 마우스 버튼을 누른 후 배치>수평으로 배치 를 누릅니다.
그 후 버튼을 드래그 하여 레이아웃 위에 올립니다.
버튼을 클릭한 후 objectName을 수정하거나 objectName이 무엇인지 확인 합니다.
그 후 ui를 저장합니다.
ui 파일이 있는 곳에서 pyuic4 -o 파이썬파일(사용자가 정함).py UI파일.ui 을 실행 하면 파이썬 파일이 생성 됩니다.
참고) 만일 실해이 되지 않는다면 C:\Python27\Lib\site-packages\PyQt4 에 ui 파일을 저장하고 위 명령어를 사용하면 작동합니다.
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'test.ui' # # Created: Wed Oct 08 16:11:24 2014 # by: PyQt4 UI code generator 4.9.6 # # WARNING! All changes made in this file will be lost! #coding!! #============================= import sys #============================= from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_Form(QtGui.QWidget): # Ui_Form(object) => Ui_Form(QtGui.QWidget): #coding!! #============================= def __init__(self): QtGui.QWidget.__init__(self) self.setupUi(self) #============================= def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(400, 300) self.horizontalLayout = QtGui.QHBoxLayout(Form) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.pushButton = QtGui.QPushButton(Form) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.verticalLayout.addWidget(self.pushButton) self.horizontalLayout.addLayout(self.verticalLayout) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle(_translate("Form", "Form", None)) self.pushButton.setText(_translate("Form", "PushButton", None)) #coding!! #============================= self.pushButton.clicked.connect(self.printQt) def printQt(self): print "hello Qt" #============================= #coding!! #============================= if __name__ == '__main__': app = QtGui.QApplication(sys.argv) ex = Ui_Form() ex.show() sys.exit(app.exec_()) #=============================
주석 안에 있는 코드가 새로 넣은 코드 입니다.
위에 코드를 작성하고 저장한 뒤 파이썬 파일을 더블 클릭하면 실행됩니다.
'Python' 카테고리의 다른 글
[python] 정규 표현식 대문자 2개 이상 (이니셜 매치) (0) | 2014.10.27 |
---|---|
[python] 직접 만든 module import 시 import 한 클래스에 파일을 로드할 시 주의! (0) | 2014.10.20 |
[python]python file download (0) | 2014.09.25 |
Crawler Class Sample (0) | 2014.09.25 |
List 필터링(Filtering) (0) | 2014.09.24 |