IT/Python

Python / GUI

상짱 2020. 5. 14. 17:36
반응형

- GUI(Graphical User Interface)
- TUI(Text-based User Interface) : 지금까지 파이썬을 통해 만든 프로그램 기반

Python GUI 프로그래밍은 wxPython, PyQt, TkInter 등과 같은 패키지를 사용한다.
TkInter 는 파이썬의 공식적인 GUI 패키지로서 별도의 프로그램을 설치하지 않고도 바로 사용할 수 있다.
TkInter 는 복잡한 프로그램을 개발하기는 부족한 면이 있어, wxPython, PyQt 를 많이 사용한다.

 

http://www.wxpython.org/ 

 

Welcome to wxPython!

All about wxPython, the cross-platform GUI toolkit for the Python language

wxpython.org

https://riverbankcomputing.com/ 

 

Riverbank Computing | News

News PyQt-builder 1.3.2 Released 20 April 2020 PyQt-builder v1.3.2 has been released. This is a minor bug-fix release. pyqtdeploy v2.5.1 Released 15 April 2020 pyqtdeploy v2.5.1 has been released. This is a minor big-fix release. pyqtdeploy v2.5.0 Released

riverbankcomputing.com

 

- PyQt
Qt GUI 프레임워크의 파이썬 바인딩이며, 개발에 널리 쓰이는 크로스 플랫폼 프레임워크로 C++ 라는 프로그래밍 언어를 사용해서 프로그래밍한다.
크로스플랫폼 프레임워크 : 윈도우나 리눅스와 같은 운영체제에 상관없이 같은 코드로 각 운영체제에서 동작하는 프로그램 개발을 지원하는 것을 의미

- from PyQt5.QtWidgets import *
PyQt5 라는 디렉토리의 QtWidgets 파일에 있는 모든 것(*)을 임포트하라는 의미
PyQt5 Anaconda3 에 설치되어 있음.

 

- QLabel 

# 라벨 Hello World 
import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
print(sys.argv)
label = QLabel("Hello World")
label.show()
app.exec_()

 

- QPushButton

# 버튼 생성
import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
label = QPushButton("Quit")
label.show()
app.exec_()

 


- 위젯
QGroupBox, QLabel, QTextEdit, QDateEdit, QTimeEdit, QLineEdit
다양한 위젯이 사용 / 한 위젯은 다른 위젯에 포함될 수 있다.
최상위 위젯은 윈도우(window) 이다. - QMainWindow , QDialog 클래스를 일반적으로 사용

 

# QMainWindow
import sys
from PyQt5.QtWidgets import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyStock")
        self.setGeometry(300, 300, 300, 400)

        # 이벤트처리
        btn1 = QPushButton("click", self)
        btn1.move(20, 20)
        btn1.clicked.connect(self.btn1_clicked)

    def btn1_clicked(self):
        QMessageBox.about(self, "message", "Clicked")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

 

- super().__init__() 의 명시적인 호출 예제

# super().__init__() 의 명시적인 호출 예제

class Parent:
    house = "parent"
    def __init__(self):
        self.money = 10000

class Child1(Parent):
    def __init__(self):
        super().__init__()
        pass

class Child2(Parent):
    def __init__(self):
        pass

child1 = Child1()
child2 = Child2()

print("child1", dir(child1))
print("child2", dir(child2))

 

 

반응형

'IT > Python' 카테고리의 다른 글

Python PyQt5 QAxContainer import 에러  (0) 2020.05.18
Python / COM  (0) 2020.05.13
7. Python IDE  (0) 2020.02.07
6. Python 파일읽기 / 쓰기  (0) 2020.02.05
5. Python 클래스  (0) 2020.02.04
4. Python 함수와 모듈  (0) 2020.02.04
3. Python 제어문  (0) 2020.01.29
2. Python 기본자료구조(리스트/튜플/딕셔너리)  (0) 2020.01.20
1. Python 변수/문자열/기본데이터타입  (0) 2020.01.20
Python 시작  (0) 2020.01.14