특정이벤트가 발생할 때 , 특정 함수가 호출된다
1. 슬롯은 처리해야 할 시그널을 감시한다
2. 시그널이 발생하면 , 슬롯 함수가 호출 된다
from PySide6.QtWidgets import *
app = QApplication()
win = QWidget()
def gogo(): # 슬롯
msg = QMessageBox()
msg.setText("클릭!")
msg.exec()
btn = QPushButton("클릭하세요",win)
btn.clicked.connect(gogo) # 시그널
win.show()
app.exec()
from PySide6.QtWidgets import *
app = QApplication()
win = QWidget()
btn = QPushButton("OK")
lineEdit = QLineEdit()
def gogo():
msg = QMessageBox()
msg.setText(lineEdit.text())
msg.exec()
lay = QVBoxLayout()
lay.addWidget(lineEdit)
lay.addWidget(btn)
win.setLayout(lay)
btn.clicked.connect(gogo)
win.show()
app.exec()
QFormLayout()
: Form 형태의 간단한 Layout 이 필요할 때 사용 가능
addRow()
: label + 위젯 동시 추가
from PySide6.QtWidgets import *
app = QApplication()
win = QWidget()
form = QFormLayout()
line1 = QLineEdit()
line2 = QLineEdit()
form.addRow("name",line1)
form.addRow("age",line2)
lay = QVBoxLayout()
lay.addLayout(form)
btn = QPushButton("회원가입")
lay.addWidget(btn)
win.setLayout(lay)
win.show()
app.exec()
from PySide6.QtWidgets import *
app = QApplication()
win = QWidget()
form = QFormLayout()
line1 = QLineEdit()
line2 = QLineEdit()
btn = QPushButton("확인")
lay = QHBoxLayout()
lay.addWidget(line2)
lay.addWidget(btn)
form.addRow("name",line1)
form.addRow("age",lay)
win.setLayout(form)
win.show()
app.exec()
from PySide6.QtWidgets import *
app = QApplication()
win = QWidget()
btn1 = QPushButton("사라짐",win)
btn2 = QPushButton("나타남",win)
line = QLabel("이름")
def disappear():
line.setVisible(False) # 사라지게 한다.
def appear():
line.setVisible(True) # 나타나게 한다.
lay1 = QHBoxLayout()
lay2 = QVBoxLayout()
lay1.addWidget(btn1)
lay1.addWidget(btn2)
lay2.addLayout(lay1)
lay2.addWidget(line)
win.setLayout(lay2)
btn1.clicked.connect(disappear)
btn2.clicked.connect(appear)
win.show()
app.exec()