이 문서는 Snow Leopard에서 PyQt를 설치하는 방법을 기술한다.
준비
아래 경로에서 Cocoa 버전의 QT 를 다운 받는다.
http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x
아래 경로에서 PyQt를 다운 받는다.
http://www.riverbankcomputing.co.uk/software/pyqt/download
아래 경로에서 sip를 다운 받는다.
http://www.riverbankcomputing.co.uk/software/sip/download
PyQt 빌드 및 설치
sip
우선 터미널에서 아래와 같이 sip를 빌드하고 설치한다.
$ export MACOSX_DEPLOYMENT_TARGET=10.6 $ python configure.py --universal --arch=i386 --arch=x86_64 -s MacOSX10.6.sdk $ make $ sudo make install
PyQt 빌드
$ export QTDIR=/Developer/Applications/Qt $ python configure.py --confirm-license --use-arch=i386 --use-arch=x86_64 $ make $ sudo make install
테스트
아래와 같은 python 코드를 저장하고 실행해본다
import sys
from PyQt4 import QtCore, QtGui
def translate(widgetname, defstr):
return QtGui.QApplication.translate(widgetname, defstr)
class Sample(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Sample, self).__init__(parent)
self.setWindowTitle(translate(u'mainwindow', u'Sample'))
self.resize(250, 150)
self.setCenter()
self.statusBar().showMessage(translate(u'mainwindow', u'Ready'))
workarea = QtGui.QWidget(self)
quit = QtGui.QPushButton(translate(u'mainwindow', u'Close'), workarea)
workarea.connect(quit, QtCore.SIGNAL('clicked()'), self, QtCore.SLOT('close()'))
quit.setToolTip(translate(u'mainwindow', u'This is a close button.'))
QtGui.QToolTip.setFont(QtGui.QFont(u'Tahoma', 10))
hbox = QtGui.QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(quit)
vbox = QtGui.QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
workarea.setLayout(vbox)
self.setCentralWidget(workarea)
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(
self,
translate(u'messagebox', u'Question'),
translate(u'messagebox', u'Are you sure to quit?'),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if QtGui.QMessageBox.Yes == reply:
event.accept()
else:
event.ignore()
def setCenter(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screen.width() - size.width()) / 2, (screen.height() - size.height()) / 2)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
main = Sample()
main.show()
sys.exit(app.exec_())
실행하면 아래와 같은 화면이 표시된다.