UbuntuPyQtHowto: 두 판 사이의 차이

Ubuntu Korea Community Wiki
둘러보기로 이동 검색으로 이동
imported>Cobi
편집 요약 없음
imported>Cobi
편집 요약 없음
152번째 줄: 152번째 줄:


== etc ==
== etc ==
 
=== Makefile ===
Makefile을 사용하면 명령보다 효율적일수도 있다. 예를 들면 다음과 같다.
Makefile을 사용하면 명령보다 효율적일수도 있다. 예를 들면 다음과 같다.


160번째 줄: 160번째 줄:
</source>
</source>
   
   
=== 예제소스 ===
http://mwiki.ubuntu.or.kr/images/5/5b/Pyqt_ex.zip


== 참고사이트 ==
== 참고사이트 ==

2014년 8월 9일 (토) 04:16 판

소개

pyqt는 가장 대표적인 크로스 프레임워크인 Qt와 파이썬을 결합한 프로젝트이다. 개념적으로는 Qt를 파이썬에 접목시키는것이다. Qt보다 파이썬에 대해서 어느정도 지식을 가지고 있어야한다.



pycharm

http://www.jetbrains.com/pycharm/


파이썬용 IDE이다. 파이썬은 특성상 단순히 터미널에서도 사용이 가능하고, 지니라는 IDE가 존재한다. 그렇지만, 가장 편하게 사용할수 있는 IDE로서 pycharm을 추천한다.



설치방법

JDK 설치

우분투는 기본적으로 python이 설치되어 있다. pycharm에서는 jdk를 요구하기에 jdk를 먼저 설치해준다. 사실은 jdk같은것은 필수로 설치하지만, 혹시나 해서

<SyntaxHighlight lang="bash">
$sudo apt-get install openjdk-7-jdk 
</SyntaxHighlight>

pycharm 설치

pycharm사이트에서 Community Edition을 다운로드 받는다. 다운로드파일은 압축파일인데, 압축파일의 압출을 풀어주면 pycharm-community-x.x.x 디렉토리가 생성될것이다. 아래의 명령으로 설치를 해주자. 이후의 과정들은 간단하므로 메세지에 따라서 설치만 해주면 된다.

<SyntaxHighlight lang="bash">
$sudo pycharm-community-x.x.x/bin/pycharm.sh 
</SyntaxHighlight>


Qt설치

우분투 소프트웨어 센터를 통해서, Qt를 설치한다. Qt는 일종의 GUI프레임워크로서 JAVA와 같이 개발을 위해서 여러가지 Qt를 이루고 있는 툴들이 필요하다. 사실은 오래전에 개발환경 세팅을 끝내서 정확한 패키지가 기억이 안난다. Qt4를 기준으로 현재 작성자의 컴퓨터의 Qt의 패키지들을 참조하기를 바란다.

<SyntaxHighlight lang="bash">

cobi@cobi-CR643:~$ dpkg --list |grep qt ii appmenu-qt 0.2.6-0ubuntu1 appmenu support for Qt ii checkbox-qt 0.13.10 QT4 interface for checkbox ii gambas2-gb-qt 2.23.1-1ubuntu3 The Gambas Qt GUI component ii libdbusmenu-qt2 0.9.2-0ubuntu1 Qt implementation of the DBusMenu protocol ii libdconf-qt0 0.0.0.110722-0ubuntu4 dconf Qt bindings (library) ii libntrack-qt4-1 016-1ubuntu1 Qt 4 API for ntrack ii libpolkit-qt-1-1 0.103.0-1 PolicyKit-qt-1 library ii libqt3-mt 3:3.3.8-b-8ubuntu3 Qt GUI Library (Threaded runtime version), Version 3 ii libqt4-dbus 4:4.8.1-0ubuntu4.8 Qt 4 D-Bus module ii libqt4-dbus:i386 4:4.8.1-0ubuntu4.8 Qt 4 D-Bus module ii libqt4-declarative 4:4.8.1-0ubuntu4.8 Qt 4 Declarative module ii libqt4-declarative:i386 4:4.8.1-0ubuntu4.8 Qt 4 Declarative module ii libqt4-declarative-gestures 4:4.8.1-0ubuntu4.8 Qt 4 gestures QML plugin ii libqt4-declarative-particles 4:4.8.1-0ubuntu4.8 Qt 4 particles QML plugin ii libqt4-designer 4:4.8.1-0ubuntu4.8 Qt 4 designer module ii libqt4-designer:i386 4:4.8.1-0ubuntu4.8 Qt 4 designer module ii libqt4-dev 4:4.8.1-0ubuntu4.8 Qt 4 development files ii libqt4-help 4:4.8.1-0ubuntu4.8 Qt 4 help module ii libqt4-network 4:4.8.1-0ubuntu4.8 Qt 4 network module ii libqt4-network:i386 4:4.8.1-0ubuntu4.8 Qt 4 network module ii libqt4-opengl 4:4.8.1-0ubuntu4.8 Qt 4 OpenGL module ii libqt4-opengl:i386 4:4.8.1-0ubuntu4.8 Qt 4 OpenGL module ii libqt4-opengl-dev 4:4.8.1-0ubuntu4.8 Qt 4 OpenGL library development files ii libqt4-qt3support 4:4.8.1-0ubuntu4.8 Qt 3 compatibility library for Qt 4 ii libqt4-qt3support:i386 4:4.8.1-0ubuntu4.8 Qt 3 compatibility library for Qt 4 ii libqt4-script 4:4.8.1-0ubuntu4.8 Qt 4 script module ii libqt4-script:i386 4:4.8.1-0ubuntu4.8 Qt 4 script module ii libqt4-scripttools 4:4.8.1-0ubuntu4.8 Qt 4 script tools module ii libqt4-scripttools:i386 4:4.8.1-0ubuntu4.8 Qt 4 script tools module ii libqt4-sql 4:4.8.1-0ubuntu4.8 Qt 4 SQL module ii libqt4-sql:i386 4:4.8.1-0ubuntu4.8 Qt 4 SQL module ii libqt4-sql-mysql:i386 4:4.8.1-0ubuntu4.8 Qt 4 MySQL database driver ii libqt4-sql-sqlite 4:4.8.1-0ubuntu4.8 Qt 4 SQLite 3 database driver ii libqt4-svg 4:4.8.1-0ubuntu4.8 Qt 4 SVG module ii libqt4-svg:i386 4:4.8.1-0ubuntu4.8 Qt 4 SVG module ii libqt4-test 4:4.8.1-0ubuntu4.8 Qt 4 test module ii libqt4-test:i386 4:4.8.1-0ubuntu4.8 Qt 4 test module ii libqt4-xml 4:4.8.1-0ubuntu4.8 Qt 4 XML module ii libqt4-xml:i386 4:4.8.1-0ubuntu4.8 Qt 4 XML module ii libqt4-xmlpatterns 4:4.8.1-0ubuntu4.8 Qt 4 XML patterns module ii libqt4-xmlpatterns:i386 4:4.8.1-0ubuntu4.8 Qt 4 XML patterns module ii libqtassistantclient4 4.6.3-3ubuntu2 Qt Assistant client library (runtime) ii libqtbamf1 0.2.4-0ubuntu1 Qt binding and QML plugin for bamf - shared library ii libqtcore4 4:4.8.1-0ubuntu4.8 Qt 4 core module ii libqtcore4:i386 4:4.8.1-0ubuntu4.8 Qt 4 core module ii libqtdee2 0.2.4-0ubuntu1 Qt binding and QML plugin for Dee - shared library ii libqtgconf1 0.1-0ubuntu5 Qt binding and QML plugin for GConf - shared library ii libqtgui4 4:4.8.1-0ubuntu4.8 Qt 4 GUI module ii libqtgui4:i386 4:4.8.1-0ubuntu4.8 Qt 4 GUI module ii libqtwebkit-dev 2.2.1-1ubuntu4 Web content engine library for Qt - development files ii libqtwebkit4 2.2.1-1ubuntu4 Web content engine library for Qt ii libqtwebkit4:i386 2.2.1-1ubuntu4 Web content engine library for Qt ii pyqt4-dev-tools 4.9.1-2ubuntu1 Development tools for PyQt4 ii python-qt4 4.9.1-2ubuntu1 Python bindings for Qt4 ii qt-at-spi 0.2.0+git20120411-0ubuntu1 accessibility plugin for Qt ii qt4-demos 4:4.8.1-0ubuntu4.8 Qt 4 examples and demos ii qt4-designer 4:4.8.1-0ubuntu4.8 graphical designer for Qt 4 applications ii qt4-dev-tools 4:4.8.1-0ubuntu4.8 Qt 4 development tools ii qt4-doc 4:4.8.1-0ubuntu4.8 Qt 4 API documentation ii qt4-linguist-tools 4:4.8.1-0ubuntu4.8 Qt 4 Linguist tools ii qt4-qmake 4:4.8.1-0ubuntu4.8 Qt 4 qmake Makefile generator tool ii qt4-qmlviewer 4:4.8.1-0ubuntu4.8 Qt 4 QML viewer ii qtcreator 2.4.1-0ubuntu2 lightweight integrated development environment (IDE) for Qt ii qtcreator-doc 2.4.1-0ubuntu2 documentation for Qt Creator IDE ii sni-qt 0.2.5-0ubuntu3 indicator support for Qt

</SyntaxHighlight>


Qt-Desginer [XML form]

xml은 마크업언어로서 Qt의 form을 작성할때도 사용되는 언어이다. Qt-Desginer를 실행시켜서 *.ui파일을 만들자. ui파일은 xml형식으로 되어있다. pyuic4를 이용하여 *.ui 파일을 파이썬이 인식이 가능한 *.py파일로 전환한다. 생성된 *.py파일은 xml에 따라서 클래스를 생성한다.

<SyntaxHighlight lang="bash">

pyuic4 *.ui > *.py

</SyntaxHighlight>


python

파이썬 코드를 생성한다. 이전에 생성된 *.py파일과 클래스를 import하는것이 중요하다. 사용되는 파일명은 pyqt_test.py 클래스는 Ui_Form이다. 파일명은 start.py이다.

<source lang="python"> start.py </source> <source lang="python"> import sys from PyQt4 import QtCore, QtGui from pyqt_test import Ui_Form

class StartQT4(QtGui.QMainWindow):

   def __init__(self, parent=None):
       QtGui.QWidget.__init__(self, parent)
       self.ui = Ui_Form()
       self.ui.setupUi(self)


if __name__ == "__main__":

   app = QtGui.QApplication(sys.argv)
   myapp = StartQT4()
   myapp.show()
   sys.exit(app.exec_())

</source>

실행

이제 실행만 해주면 된다.

<SyntaxHighlight lang="bash">
$python ./start.py
</SyntaxHighlight>


etc

Makefile

Makefile을 사용하면 명령보다 효율적일수도 있다. 예를 들면 다음과 같다.

<source lang="Make"> all: pyuic4 test.ui > test_ui.py </source>

예제소스

http://mwiki.ubuntu.or.kr/images/5/5b/Pyqt_ex.zip

참고사이트

https://wiki.python.org/moin/JonathanGardnerPyQtTutorial http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/ http://qt-project.org/wiki/Category:LanguageBindings::PySide