PySide
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
PySide는 Qt 툴킷을 위한 파이썬 바인딩이다. 2009년 노키아가 PyQt 개발사인 Riverbank Computing과의 라이선스 협상 실패로 자체 개발하여 LGPL 라이선스로 출시했다. PySide는 Qt 버전에 따라 PySide, PySide2, PySide6의 세 가지 주요 버전으로 나뉘며, 각 버전은 Qt 4, Qt 5, Qt 6를 지원한다. 초기에는 Boost.Python을 사용했으나, 이후 Shiboken이라는 자체 바인딩 생성기를 개발했다.
더 읽어볼만한 페이지
- Qt - Qt (소프트웨어)
Qt는 C++로 작성된 크로스 플랫폼 애플리케이션 개발 프레임워크로, GUI, 멀티미디어, 네트워크 등 다양한 기능을 제공하며, 시그널과 슬롯 메커니즘과 Qt Creator 등의 개발 도구를 통해 데스크톱, 임베디드, 모바일 UI 개발에 널리 사용된다. - Qt - QML
QML은 사용자 인터페이스 생성을 위한 선언형 언어로, 객체 선언, 속성 정의, 데이터 바인딩, 상태 관리, 애니메이션 기능을 제공하며 Qt/C++과 통합이 용이하다. - 위젯 툴킷 - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - 위젯 툴킷 - 윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. - 파이썬 라이브러리 - Tkinter
Tkinter는 Tcl/Tk 툴킷을 파이썬 래퍼로 구현한 GUI 표준 라이브러리로서, 다양한 위젯과 배치 관리자를 제공하며 테마 Tk 기능을 통해 위젯 외관을 변경할 수 있도록 지원한다. - 파이썬 라이브러리 - SciPy
SciPy는 NumPy 배열 구조를 기반으로 수치 적분, 선형 대수, 최적화, 통계 등 과학 및 공학 계산에 사용되는 다양한 기능을 제공하는 파이썬 과학 컴퓨팅 라이브러리이다.
PySide - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
이름 | PySide |
![]() | |
저자 | Qt Company(Nokia의 일부) |
개발자 | Qt Company |
출시일 | 2009년 8월 18일 |
최신 버전 | 6.6.2 |
최신 버전 출시일 | 2024년 2월 15일 |
프로그래밍 언어 | 파이썬 |
운영체제 | 리눅스/X11 macOS 윈도우 |
라이선스 | LGPL |
웹사이트 | PySide 공식 웹사이트 Qt for Python 웹사이트 |
추가 정보 | |
Shiboken | Shiboken |
2. 역사
노키아는 2009년에 LGPL 라이선스 하에 PySide를 출시했다.[6] PySide는 Qt 프레임워크의 파이썬 바인딩으로, 초기에는 Boost.Python을 사용하다가 나중에 자체 바인딩 생성기인 Shiboken으로 전환했다.[15][16]
2. 1. PySide 탄생 배경
2009년, 노키아는 Qt 툴킷의 소유주로서 LGPL 라이선스로 파이썬 바인딩을 제공하고자 했다. 그러나 PyQt 파이썬 바인딩 개발사인 Riverbank Computing과의 라이선스 협상에 실패했다.[6] 그해 8월, 노키아는 LGPL 라이선스 하에 PySide를 출시하여 PyQt와 유사한 기능을 제공했다.[7][8] 'Side'는 핀란드어로 바인딩을 의미한다.[6]2. 2. 주요 버전
PySide는 Qt 버전에 따라 여러 버전으로 출시되었다.[9]- PySide: Qt 4 지원
- PySide2: Qt 5 지원
- PySide6: Qt 6 지원
PySide 버전 1은 2009년 8월 노키아에 의해 LGPL 하에 출시되었다.[1] 당시 Qt 툴킷의 소유주였던 노키아는 PyQt 개발사인 Riverbank Computing과 LGPL을 대체 라이선스로 포함하도록 라이선스 조건을 변경하는 데 합의하지 못했다.[10] 이 버전은 Linux/X11, Mac OS X, Microsoft Windows, Maemo, MeeGo 운영 체제에서 Qt 4를 지원했으며,[11] PySide 커뮤니티는 Android에 대한 지원을 추가했다.[12]
PySide2는 2015년 크리스티안 티스머(Christian Tismer)가 Qt 4에서 Qt 5로 PySide를 포팅하기 위해 시작했다.[13] 이후 이 프로젝트는 Qt 프로젝트에 통합되었으며,[14] 2018년 12월에 출시되었다.[13]
PySide6는 2020년 12월에 출시되었다. Qt 6에 대한 지원이 추가되었으며, 파이썬 3.6 버전보다 이전 버전의 모든 파이썬 버전에 대한 지원이 제거되었다.[9]
2. 3. 기술적 특징
초기에는 바인딩을 위해 Boost C++ 라이브러리의 Boost.Python을 사용했다. 이후 바이너리 크기와 메모리 사용량을 줄이기 위해 Shiboken이라는 자체 바인딩 생성기를 만들었다.[15][16]3. 예제
PySide를 사용하면 간단한 GUI 프로그램 작성이 가능하다. 다음은 "Hello, World!" 메시지를 출력하는 예시이다.
```python
# PySide6 클래스 가져오기
import sys
from PySide6 import QtCore, QtWidgets
# Qt 애플리케이션 생성
app = QtWidgets.QApplication(sys.argv)
# 윈도우 생성
mywindow = QtWidgets.QWidget()
mywindow.resize(320, 240)
mywindow.setWindowTitle('Hello, World!')
# 라벨 생성 및 표시
mylabel = QtWidgets.QLabel(mywindow)
mylabel.setText('Hello, World!')
mylabel.setGeometry(QtCore.QRect(200, 200, 200, 200))
mywindow.show()
# Qt 애플리케이션 메인 루프 진입
sys.exit(app.exec())
```
위 코드는 PySide6를 사용하여 창을 생성하고, `QtWidgets.QLabel`을 통해 "Hello, World!" 텍스트를 표시한다. `show()` 함수는 창을 화면에 나타내며, `app.exec()`은 프로그램이 종료되지 않도록 이벤트 루프를 실행한다.
3. 1. 파이썬 코드 예제
python# PySide6 클래스 가져오기
import sys
from PySide6 import QtCore, QtWidgets
# Qt 애플리케이션 생성
app = QtWidgets.QApplication(sys.argv)
# 윈도우 생성
mywindow = QtWidgets.QWidget()
mywindow.resize(320, 240)
mywindow.setWindowTitle('Hello, World!')
# 라벨 생성 및 표시
mylabel = QtWidgets.QLabel(mywindow)
mylabel.setText('Hello, World!')
mylabel.setGeometry(QtCore.QRect(200, 200, 200, 200))
mywindow.show()
# Qt 애플리케이션 메인 루프 진입
sys.exit(app.exec())
```
```python
import sys
from PySide6 import QtCore, QtWidgets
# Qt 애플리케이션 생성
app = QtWidgets.QApplication(sys.argv)
# Qt 윈도우 생성
main_window = QtWidgets.QWidget()
main_window.resize(320, 240)
main_window.setWindowTitle("'Hello, world!' 예시")
# 윈도우에 텍스트 생성
label = QtWidgets.QLabel(main_window)
label.setText("Hello, world!")
label.setGeometry(QtCore.QRect(200, 200, 200, 200))
# 윈도우를 표시
main_window.show()
# Qt 메인 루프 시작 및 종료
sys.exit(app.exec())
```
```python
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("Hello World", alignment=Qt.AlignCenter)
label.show()
sys.exit(app.exec_())
참조
[1]
웹사이트
PySide has been released
http://www.pyside.or[...]
2009-08-18
[2]
웹사이트
PySide6 Release History
https://pypi.org/pro[...]
[3]
웹사이트
Qt for Python Cross compilation
https://doc.qt.io/qt[...]
The Qt Company
2022-04-13
[4]
웹사이트
Qt for Python details on the new 6.3 release
https://www.qt.io/bl[...]
The Qt Company
2022-04-13
[5]
웹사이트
Taking Qt for Python to Android
https://www.qt.io/bl[...]
The Qt Company
2022-04-13
[6]
웹사이트
PyQt5 vs PySide2: What's the difference between the two Python Qt libraries?
https://www.pythongu[...]
2022-06-25
[7]
웹사이트
FAQ – PySide – Python for Qt
https://web.archive.[...]
Pyside.org
2009-09-03
[8]
웹사이트
PySide has been released – PySide – Python for Qt
https://web.archive.[...]
Pyside.org
2009-09-03
[9]
웹사이트
Qt for Python 6 released
https://www.qt.io/bl[...]
The Qt Company
2020-12-10
[10]
웹사이트
PySide FAQ
https://web.archive.[...]
2021-02-24
[11]
웹사이트
PySide Downloads
https://wiki.qt.io/P[...]
2021-02-24
[12]
웹사이트
PySide for Android guide
https://wiki.qt.io/P[...]
2021-02-24
[13]
웹사이트
Qt for Python
https://wiki.qt.io/Q[...]
2021-02-24
[14]
웹사이트
Bringing pyside back to Qt Project
https://groups.googl[...]
2021-02-24
[15]
웹사이트
Shiboken
https://doc.qt.io/qt[...]
The Qt Company
2021-02-24
[16]
웹사이트
PySide Shiboken FAQ
https://wiki.qt.io/P[...]
2021-02-24
[17]
웹사이트
Shiboken
http://www.pyside.or[...]
Pyside.org
2010-05-25
[18]
URL
http://www.pyside.or[...]
[19]
웹사이트
FAQ – PySide – Python for Qt
http://developer.qt.[...]
Pyside.org
2010-05-25
[20]
웹사이트
FAQ – PySide – Python for Qt
http://developer.qt.[...]
Pyside.org
2013-03-19
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com