- GUI(Graphical User Interface)
- TUI(Text-based User Interface) : 지금까지 파이썬을 통해 만든 프로그램 기반
Python 의 GUI 프로그래밍은 wxPython, PyQt, TkInter 등과 같은 패키지를 사용한다.
TkInter 는 파이썬의 공식적인 GUI 패키지로서 별도의 프로그램을 설치하지 않고도 바로 사용할 수 있다.
TkInter 는 복잡한 프로그램을 개발하기는 부족한 면이 있어, wxPython, PyQt 를 많이 사용한다.
https://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 |