728x90
PyQt QMessageBox 클래스 소개
QMessageBox 클래스를 사용하면 사용자에게 중요한 정보를 알리거나 사용자에게 질문을 하고 답변을 받는 모달 대화 상자를 만들 수 있습니다.
QMessageBox는 메시지 상자를 표시하기 위한 몇 가지 유용한 정적 메서드를 제공합니다.
- information() – 정보 메시지를 표시합니다.
- question() – 사용자에게 질문하고 답변을 받습니다.
- warning() – 경고 메시지를 표시합니다.
- critical() – 중요한 정보를 표시합니다.
PyQt QMessageBox 예제
다음 프로그램은 4개의 버튼이 있는 창을 보여주며 버튼을 클릭하면 해당 메시지가 표시됩니다.
import sys
from PyQt6.QtWidgets import QApplication, QMessageBox, QWidget, QHBoxLayout, QPushButton
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QMessageBox')
self.setGeometry(100, 100, 300, 100)
layout = QHBoxLayout()
self.setLayout(layout)
btn_question = QPushButton('Question')
btn_question.clicked.connect(self.question)
btn_info = QPushButton('Information')
btn_info.clicked.connect(self.info)
btn_warning = QPushButton('Warning')
btn_warning.clicked.connect(self.warning)
btn_critical = QPushButton('Critical')
btn_critical.clicked.connect(self.critical)
layout.addWidget(btn_question)
layout.addWidget(btn_info)
layout.addWidget(btn_warning)
layout.addWidget(btn_critical)
self.show()
def info(self):
QMessageBox.information(
self,
'Information',
'This is important information.'
)
def warning(self):
QMessageBox.warning(
self,
'Warning',
'This is a warning message.'
)
def critical(self):
QMessageBox.critical(
self,
'Critical',
'This is a critical message.'
)
def question(self):
answer = QMessageBox.question(
self,
'Confirmation',
'Do you want to quit?',
QMessageBox.StandardButton.Yes |
QMessageBox.StandardButton.No
)
if answer == QMessageBox.StandardButton.Yes:
QMessageBox.information(
self,
'Information',
'You selected Yes. The program will be terminated.',
QMessageBox.StandardButton.Ok
)
self.close()
else:
QMessageBox.information(
self,
'Information',
'You selected No.',
QMessageBox.StandardButton.Ok
)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())Code language: Python (python)
작동 방식.
question() 메서드는 사용자에게 예 또는 아니요 단추를 선택하도록 요청하는 질문이 포함된 메시지 상자를 표시합니다.
answer = QMessageBox.question(
self,
'Confirmation',
'Do you want to quit?',
QMessageBox.StandardButton.Yes |
QMessageBox.StandardButton.No
)Code language: Python (python)
사용자가 클릭한 단추를 가져오려면 question()메서드의 반환 값을 QMessageBox.StandardButton 열거형의 Yes, No 멤버와 비교합니다.
if answer == QMessageBox.StandardButton.Yes:
QMessageBox.information(
self,
'Information',
'You selected Yes. The program will be terminated.',
QMessageBox.StandardButton.Ok
)
self.close()
else:
QMessageBox.information(
self,
'Information',
'You selected No.',
QMessageBox.StandardButton.Ok
)Code language: Python (python)
information() 메서드는 정보가 포함된 메시지 상자를 표시합니다. 부모 위젯, 메시지 상자의 제목 및 메시지를 허용합니다.
QMessageBox.information(
self,
'Information',
'This is important information.'
)Code language: Python (python)
PyQt-QMessageBox-정보-메시지
warning() 메서드는 경고 메시지를 표시합니다. 그 모양은 경고 아이콘을 제외한 정보와 같습니다.
QMessageBox.warning(
self,
'Warning',
'This is a warning message.'
)Code language: Python (python)
출력:
critical() 메서드는 메시지 상자에 중요한 메시지를 표시합니다. 중지 아이콘은 메시지를 중요하게 만듭니다.
QMessageBox.critical(
self,
'Critical',
'This is a critical message.'
)Code language: Python (python)
요약
- QMessageBox 클래스를 사용하여 메시지 상자를 표시하거나 사용자에게 질문을 하고 대답을 받는 모달 대화 상자를 만듭니다.
728x90
반응형
그리드형
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 Python for else 문 (0) | 2023.06.23 |
---|---|
파이썬 Python For else (0) | 2023.06.22 |
파이썬 Python QT PyQt QVBoxLayout (0) | 2023.06.22 |
파이썬 Python QT PyQt QRadioButton (0) | 2023.06.22 |
파이썬 Python QT PyQt QGridLayout (0) | 2023.06.22 |