반응형
목차
파이썬 PySide 라벨 키보드 이벤트 (Lable, Keyboard, Event)
앞서 포스트에서 마우스(Mouse) 클릭 별 이벤트 발생 시 특정 함수나 기능을 실행시키는 방법에 대해 알아보았습니다. 이번 포스트에서는 라벨(Label)에 텍스트 입력(Text Input) 창을 만들고 텍스트에 입력창에 텍스트를 입력 시 해당 입력을 즉각적으로 표기하는 방법에 대해 알아보겠습니다.
예제를 통해 쉽게 알아보겠습니다.
예제 코드>>
from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QVBoxLayout, QWidget
from PySide6.QtCore import QSize
import sys
class Qt_Ex(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Qt Example")
self.setFixedSize(QSize(250, 100))
self.label0 = QLabel("키보드 입력 이벤트")
self.setCentralWidget(self.label0)
self.label1 = QLabel()
self.input = QLineEdit()
self.input.textChanged.connect(self.label1.setText)
layout = QVBoxLayout()
layout.addWidget(self.input)
layout.addWidget(self.label1)
layout.addWidget(self.label0)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
app = QApplication(sys.argv)
window = Qt_Ex()
window.show()
app.exec()
결과>>
위와 같이 hello world 입력이 반영됨을 알 수 있습니다.
주석>>
PySide의 구성은 이전에 포스트에서 많이 설명했으니 생략하고 라벨 텍스트 관련 내용에 대해서만 주석을 달겠습니다.
self.label1 = QLabel()
self.input = QLineEdit()
self.input.textChanged.connect(self.label1.setText)
라벨을 QLabel 함수로 객체 생성을 해주고 QLineEdit으로 텍스트 입력창을 만들어 줍니다. 그리고 input의 객체에서 텍스트 값이 변할때 이를 textChanged 함수를 사용해서 인식해줍니다.
layout = QVBoxLayout()
layout.addWidget(self.input)
layout.addWidget(self.label1)
layout.addWidget(self.label0)
QVBoxLayout 함수를 객체화 해줍니다. 레이어 배치는 Vertical (수직 방향)으로 하나씩 배치 해줍니다.
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
앞서 작성한 라벨이나 텍스트를 QWidget으로 container에 넣어주고 최종적으로 배치를 완료 합니다.
레이어나 Application의 위치 배치는 추후에 상세하게 남기도록 하겟습니다.
반응형
'파이썬(Python) > PySide' 카테고리의 다른 글
[Python] Pyside 레이아웃 설정, 수직, 수평, 겹치기, 그리드(Layout, Vertical, Horizontal, Stack, Grid) (0) | 2022.12.09 |
---|---|
[Python] PySide 라벨 위치, 폰트, 글자 크기(Pont, Size, Type) (0) | 2022.12.05 |
[Python] PySide 위젯 종류 및 기능(Widget) (0) | 2022.12.02 |
[Python] PySide 마우스 이벤트 동작(Mouse event) (0) | 2022.11.25 |
[PySide6] PyQt란? Hello World 출력하기 (0) | 2022.11.22 |