반응형
안녕하세요. 언제나휴일입니다.
이번에는 MainWindow에 자식 위젯을 배치하는 첫 번째 실습입니다.
실습할 내용은 Button을 클릭하면 TextEdit에 입력한 내용을 Label에 표시하는 것입니다.
1. 소스 코드
#MainWindow.py
import PyQt5.QtWidgets as qtwid
class MainWindow(qtwid.QMainWindow):
def __init__(self):
super().__init__()
self.te_query = qtwid.QTextEdit(self)
self.btn_confirm = qtwid.QPushButton("확인",self)
self.lb_query = qtwid.QLabel("[입력 문자열]",self)
self.Initialize()
def Initialize(self):
self.setWindowTitle("Button 클릭하면 TextEdit에 입력 내용을 Label에 표시")
self.resize(600,180)
self.te_query.move(20,20)
self.te_query.resize(300,40)
self.btn_confirm.move(340,20)
self.btn_confirm.resize(100,40)
self.lb_query.move(20,100)
self.lb_query.resize(600,40)
self.btn_confirm.clicked.connect(self.Btn_confirmClick)
def Btn_confirmClick(self):
query = self.te_query.toPlainText()
self.te_query.setText("")
self.lb_query.setText(query)
#Button 클릭하면 TextEdit에 입력 내용을 Label에 표시
#Main.py
import sys
import PyQt5.QtWidgets as qtwid
from MainWindow import MainWindow
app = qtwid.QApplication(sys.argv)
mw = MainWindow()
mw.show()
app.exec_()
2. MainWindow 클래스
위젯을 사용하기 위해 QtWidgets 모듈을 포함시킵니다.
#MainWindow.py
import PyQt5.QtWidgets as qtwid
MainWindow는 QMainWindow에서 파생한 클래스입니다.
class MainWindow(qtwid.QMainWindow):
2.1 __init__ 메서드
자식 위젯을 생성합니다. 여기에서는 QTextEdit, QPushButton, QLabel을 하나씩 배치할게요.
def __init__(self):
super().__init__()
self.te_query = qtwid.QTextEdit(self)
self.btn_confirm = qtwid.QPushButton("확인",self)
self.lb_query = qtwid.QLabel("[입력 문자열]",self)
자식 위젯의 위치 및 크기, 이벤트 핸들러 등을 설정하는 부분은 별도의 메서드로 만들게요. 이를 호출합니다.
self.Initialize()
2.2 Initialize 메서드
윈도우 타이틀을 설정하고 크기를 조절합니다.
def Initialize(self):
self.setWindowTitle("Button 클릭하면 TextEdit에 입력 내용을 Label에 표시")
self.resize(600,180)
자식 위젯의 위치 및 크기를 조절합니다.
def Initialize(self):
self.setWindowTitle("Button 클릭하면 TextEdit에 입력 내용을 Label에 표시")
self.resize(600,180)
self.te_query.move(20,20)
self.te_query.resize(300,40)
self.btn_confirm.move(340,20)
self.btn_confirm.resize(100,40)
self.lb_query.move(20,100)
self.lb_query.resize(600,40)
버튼의 클릭 이벤트 핸들러를 등록합니다.
self.btn_confirm.clicked.connect(self.Btn_confirmClick)
2.2 Btn_confirmClick 메서드
입력한 내용을 얻어옵니다.
def Btn_confirmClick(self):
query = self.te_query.toPlainText()
te_query의 텍스트를 빈 문자열로 설정합니다.
self.te_query.setText("")
lb_query의 텍스트를 얻어온 문자열로 설정합니다.
self.lb_query.setText(query)
Main.py 코드 설명은 생략하게요.
이상으로 실습을 마쳤습니다.
반응형
'Python > QT' 카테고리의 다른 글
[python QT] 리스트 위젯 사용하기 (0) | 2020.11.19 |
---|---|
[python QT] 마우스 클릭 이벤트 핸들러에서 배경색 토글 (0) | 2020.11.19 |
[python QT] 나의 윈도우 클래스 만들기 (0) | 2020.11.19 |
[python QT] 첫 번째 응용 만들기 (0) | 2020.11.19 |