파이크트

PyQt
파이크트
Python and Qt.svg
Screenshot-qt-designer-qwebview.png
개발자리버뱅크 컴퓨팅
초기 릴리즈1998
안정된 릴리스
6.3.0[1] / 2022년 4월 12일; 3개월 전 (2022년 4월 12일)
기입처C++ / Python[2]
운영 체제크로스 플랫폼
면허증.GNU GPL 및 상용
웹 사이트riverbankcomputing.com

PyQt는 Python 플러그인으로 구현된 크로스 플랫폼 GUI 툴킷 Qt의 Python 바인딩입니다.PyQt는 영국의 Riverbank Computing사가 개발무료 소프트웨어입니다.4.5보다 오래된 QT 버전과 유사한 조건으로 제공되고 있습니다.는 GNU General Public License(GPL) 및 상용 라이선스를 포함한 다양한 라이선스를 의미하지만 GNU Lesser General Public License(LGPL)[3]는 의미하지 않습니다.PyQt는 Microsoft Windows와 Linux, MacOS(또는 [4]Darwin)를 포함한 다양한 UNIX의 지원합니다.

PyQt는 약 440개의 클래스와 다음을 포함한 6,000개 이상의 기능과 방법을[5] 구현합니다.

이러한 바인딩을 자동으로 생성하기 위해 Phil Thompson은 다른 프로젝트에서도 사용되는 도구 SIP를 개발했습니다.

역사

PyQt는 1998년 [8]Riverbank Computing에 의해 처음 출시되었습니다.

2009년 8월, 노키아는 LGPL 라이선스로 Python 바인딩을 이용할 수 있도록 했습니다.Riverbank Computing과 합의에 이르지 못한 후, PySide는 유사한 [9]기능을 제공하는 자체 bing을 출시합니다.

주요 컴포넌트

대체 PyQt 로고

PyQt4에는 다음과 같은 Python 모듈이 포함되어 있습니다.

  • QtCore 모듈에는 이벤트루프와 Qt의 신호 및 슬롯메커니즘을 포함한 핵심 비GUI 클래스가 포함되어 있습니다.또한 Unicode, 스레드, 매핑된 파일, 공유 메모리, 정규 표현 및 사용자 및 응용 프로그램 설정에 대한 플랫폼에 의존하지 않는 추상화도 포함됩니다.
  • QtGui 모듈에는 대부분의 GUI 클래스가 포함되어 있습니다.여기에는 모델 뷰 컨트롤러 설계 패턴에 기초한 다수의 테이블, 트리 및 리스트 클래스가 포함됩니다.일반 위젯을 포함한 수천 개의 아이템을 저장할 수 있는 정교한 2D 캔버스 위젯도 제공됩니다.
  • QtNetwork 모듈에는 UDP 및 TCP 클라이언트 및 서버를 쓰기 위한 클래스가 포함되어 있습니다.FTP 및 HTTP 클라이언트를 구현하고 DNS 검색을 지원하는 클래스가 포함됩니다.네트워크 이벤트는 이벤트루프와 통합되어 네트워크 어플리케이션 개발이 매우 용이합니다.
  • QtOpenGL 모듈에는 PyQt 응용 프로그램에서 3D 그래픽을 렌더링할 때 OpenGL을 사용할 수 있는 클래스가 포함되어 있습니다.
  • QtSql 모듈에는 오픈 소스 및 자체 SQL 데이터베이스와 통합되는 클래스가 포함되어 있습니다.여기에는 GUI 클래스에서 사용할 수 있는 데이터베이스 테이블의 편집 가능한 데이터 모델이 포함되어 있습니다.SQLite 구현도 포함되어 있습니다.
  • QtSvg 모듈에는 SVG 파일의 내용을 표시하기 위한 클래스가 포함되어 있습니다.SVG 1.2 Tiny의 정적 기능을 지원합니다.
  • QtXml 모듈은 Qt의 XML 파서에 SAX DOM 인터페이스를 구현합니다.
  • QtMultimedia 모듈은 저레벨 멀티미디어 기능을 구현합니다.애플리케이션 개발자는 보통 포논 모듈을 사용합니다.
  • QtDesigner 모듈에는 PyQt를 사용하여 QtDesigner를 확장할 수 있는 클래스가 포함되어 있습니다.
  • Qt 모듈은 위에서 설명한 모든 모듈에 포함된 클래스를 단일 모듈로 통합합니다.이를 통해 어떤 기본 모듈에 특정 클래스가 포함되어 있는지 걱정할 필요가 없다는 장점이 있습니다.Qt 프레임워크 전체를 로드하여 응용 프로그램의 메모리 사용 공간을 늘린다는 단점이 있습니다.이 통합 모듈을 사용할지 개별 컴포넌트 모듈을 사용할지는 개인 취향에 따라 결정됩니다.
  • uic 모듈은 Qt Designer에 의해 작성된 XML 파일 처리에 대한 지원을 구현합니다.이 XML 파일은 그래피컬 사용자 인터페이스의 전체 또는 일부를 기술합니다.XML 파일을 로드하여 직접 렌더링하는 클래스와 나중에 실행하기 [10]위해 XML 파일에서 Python 코드를 생성하는 클래스가 포함됩니다.

PyQt5에는 다음 Python 모듈이 포함되어 있습니다.

  • QtQml 모듈
  • QtQtuick 모듈
  • QtCore 모듈
  • QtGui 모듈
  • QtPrint 지원 모듈
  • QtWidgets 모듈
  • QGLContext 모듈
  • QGLFormat 모듈
  • QGLWidget 모듈
  • QtWebKit 모듈
  • QtWebKitWidgets 모듈

버전

PyQt 버전4는 Qt 4와 Qt 5 모두에서 동작합니다.PyQt 버전5는 Qt [4]버전5만을 지원하며 Qt [11]5에서 권장되지 않는 기능의 지원은 드롭합니다.

Hello World의 예

다음 코드는 화면에 작은 창을 보여줍니다.

PyQt4

#! /usr/bin/env python3 # 문자 부호화: UTF-8 # # 여기에서는 필요한 수입품을 제공하고 있습니다. # 기본 GUI 위젯은 QtGui 모듈에 있습니다. 수입품 시스템 부터 PyQt4.QtGui 수입품 QApplication, QWidget  # 모든 PyQt4 어플리케이션은 어플리케이션 오브젝트를 생성해야 합니다. # 어플리케이션 오브젝트는 QtGui 모듈에 있습니다. 앱. = QApplication(시스템.argv)  # QWidget 위젯은 PyQt4의 모든 사용자 인터페이스 객체의 기본 클래스입니다. # QWidget 기본 컨스트럭터를 제공합니다.기본 생성자에 부모가 없습니다. # 부모가 없는 위젯을 창이라고 합니다. 뿌리 = QWidget()  뿌리.크기 조정(320, 240)  # resize() 메서드는 위젯 크기를 조정합니다. 뿌리.set WindowTitle("안녕, 월드!")  # 여기서 창문의 제목을 설정합니다. 뿌리.표시하다()  # show() 메서드는 위젯을 화면에 표시합니다.  시스템.퇴장(앱..실행_())  # 마지막으로 어플리케이션의 메인 루프에 들어갑니다. 

PyQt5

#! /usr/bin/env python3 # 문자 부호화: UTF-8 # # 여기에서는 필요한 수입품을 제공하고 있습니다. # 기본 GUI 위젯은 QtWidgets 모듈에 있습니다. 수입품 시스템 부터 PyQt5.QtWidgets 수입품 QApplication, QWidget  # 모든 PyQt5 어플리케이션은 어플리케이션 오브젝트를 생성해야 합니다. # 응용 프로그램오브젝트는 QtWidgets 모듈에 있습니다. 앱. = QApplication([])  # QWidget 위젯은 PyQt5의 모든 사용자 인터페이스 객체의 기본 클래스입니다. # QWidget 기본 컨스트럭터를 제공합니다.기본 생성자에 부모가 없습니다. # 부모가 없는 위젯을 창이라고 합니다. 뿌리 = QWidget()  뿌리.크기 조정(320, 240)  # resize() 메서드는 위젯 크기를 조정합니다. 뿌리.set WindowTitle("안녕, 월드!")  # 여기서 창문의 제목을 설정합니다. 뿌리.표시하다()  # show() 메서드는 위젯을 화면에 표시합니다.  시스템.퇴장(앱..실행_())  # 마지막으로 어플리케이션의 메인 루프에 들어갑니다. 

PyQt6

#! /usr/bin/env python3 # 문자 부호화: UTF-8 # # 여기에서는 필요한 수입품을 제공하고 있습니다. # 기본 GUI 위젯은 QtWidgets 모듈에 있습니다. 수입품 시스템 부터 PyQt6.QtWidgets 수입품 QApplication, QWidget  # 모든 PyQt6 어플리케이션은 어플리케이션 오브젝트를 생성해야 합니다. # 응용 프로그램오브젝트는 QtWidgets 모듈에 있습니다. 앱. = QApplication([])  # QWidget 위젯은 PyQt6의 모든 사용자 인터페이스 객체의 기본 클래스입니다. # QWidget 기본 컨스트럭터를 제공합니다.기본 생성자에 부모가 없습니다. # 부모가 없는 위젯을 창이라고 합니다. 뿌리 = QWidget()  뿌리.크기 조정(320, 240)  # resize() 메서드는 위젯 크기를 조정합니다. 뿌리.set WindowTitle("안녕, 월드!")  # 여기서 창문의 제목을 설정합니다. 뿌리.표시하다()  # show() 메서드는 위젯을 화면에 표시합니다.  시스템.퇴장(앱..이그제큐티브())  # 마지막으로 어플리케이션의 메인 루프에 들어갑니다. 

PyQt를 사용하는 주요 응용 프로그램

  • Anki, 공백 반복 플래시 카드 프로그램
  • 전자책 관리 어플리케이션인 Calibre
  • 파일 호스팅 서비스인 Dropbox
  • Eric Python IDE
  • fman, 크로스 플랫폼 파일 매니저
  • LilyPond 음악 파일 악보 편집자 프레스코발디
  • Python 정규 표현 디버거인 Kodos
  • Leo, 아웃라이너이자 글을 아는 프로그래밍 편집자
  • 확장 가능한 오픈 소스 Python IDE인 Ninja-IDE
  • OpenLP, 오픈 소스 가사 프로젝션 프로그램
  • 비디오 편집 프로그램인 OpenShot
  • Orange, 데이터 마이닝 및 시각화 프레임워크
  • Puddletag, 오픈소스 크로스 플랫폼 ID3 태그 에디터
  • QGIS, 무료 소프트웨어 데스크톱 지리정보시스템(GIS) 애플리케이션
  • VIM 스타일의 키바인딩과 최소한의 GUI를 갖춘 웹 브라우저인 qutebrowser.
  • qt-recordMyDesktop, recordMyDesktop용 Qt4 프런트엔드
  • Spyder, Python 데이터 사이언스 IDE
  • TortoiseHg, Mercurial 소스 관리 프로그램용 그래픽 인터페이스(Hg)
  • 과학적 플롯 어플리케이션인 Veusz
  • GNS3, 네트워크소프트웨어 에뮬레이터

「 」를 참조해 주세요.

레퍼런스

  1. ^ https://riverbankcomputing.com/news/PyQt_v6.3.0_Released 를 참조해 주세요.
  2. ^ "PyQt4 Download". Riverbankcomputing. 2010. Retrieved 2010-04-19.
  3. ^ "Riverbank Commercial License FAQ". Riverbankcomputing.com. Retrieved 2015-06-24.
  4. ^ a b "What is PyQt?". Riverbank Computing. Retrieved 2014-09-18.
  5. ^ "PyQt v4 - Python Bindings for Qt v4". Riverbankcomputing. Archived from the original on 2008-04-29. Retrieved 2010-04-17.
  6. ^ "QSqlDatabase Class Reference". Pyqt.sourceforge.net. Retrieved 2014-09-25.
  7. ^ PythonInfo Wiki
  8. ^ Jarmul, Katharine; Lawson, Richard (2017-05-30). Python Web Scraping. Packt Publishing Ltd. p. 105. ISBN 978-1-78646-429-3.
  9. ^ faq, Martin Fitzpatrick Last updated (2019-06-21). "PyQt5 vs PySide2: What's the difference between the two Python Qt libraries?". Python GUIs. Retrieved 2022-06-25.
  10. ^ "Riverbank Software PyQt What is PyQt?". Riverbankcomputing.co.uk. Retrieved 2010-04-15.
  11. ^ "Differences Between PyQt4 and PyQt5", PyQt 5.3.2 Reference Guide

추가 정보

외부 링크