PyQt5-QMessageBox
QMessageBox일부 정보 메시지를 표시하고 선택적으로 사용자에게 표준 버튼 중 하나를 클릭하여 응답하도록 요청하는 데 일반적으로 사용되는 모달 대화 상자입니다. 각 표준 버튼에는 미리 정의 된 캡션과 역할이 있으며 미리 정의 된 16 진수를 반환합니다.
QMessageBox 클래스와 관련된 중요한 메서드와 열거는 다음 표에 나와 있습니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 | setIcon() 메시지의 심각도에 따라 미리 정의 된 아이콘을 표시합니다.
|
2 | setText() 표시 할 메인 메시지의 텍스트를 설정합니다. |
삼 | setInformativeText() 추가 정보를 표시합니다. |
4 | setDetailText() 대화 상자에 세부 정보 버튼이 표시됩니다. 이 텍스트는 클릭하면 나타납니다. |
5 | setTitle() 대화 상자의 사용자 지정 제목을 표시합니다. |
6 | setStandardButtons() 표시 할 표준 버튼 목록입니다. 각 버튼은 QMessageBox.Ok 0x00000400 QMessageBox.Open 0x00002000 QMessageBox.Save 0x00000800 QMessageBox.Cancel 0x00400000 QMessageBox.Close 0x00200000 QMessageBox. 예 0x00004000 QMessageBox. 아니요 0x00010000 QMessageBox.Abort 0x00040000 QMessageBox.Retry 0x00080000 QMessageBox. 0x00100000 무시 |
7 | setDefaultButton() 버튼을 기본값으로 설정합니다. Enter를 누르면 클릭 된 신호를 방출합니다. |
8 | setEscapeButton() Esc 키를 눌렀을 때 클릭 한 것으로 처리 할 버튼을 설정합니다. |
예
다음 예에서는 최상위 창에서 버튼의 신호를 클릭하면 연결된 함수가 메시지 상자 대화 상자를 표시합니다.
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
setStandardButton () 함수는 원하는 버튼을 표시합니다.
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
buttonClicked () 신호는 신호 소스의 캡션을 식별하는 슬롯 함수에 연결됩니다.
msg.buttonClicked.connect(msgbtn)
예제의 전체 코드는 다음과 같습니다.
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
def window():
app = QApplication(sys.argv)
w = QWidget()
b = QPushButton(w)
b.setText("Show message!")
b.move(100,50)
b.clicked.connect(showdialog)
w.setWindowTitle("PyQt MessageBox demo")
w.show()
sys.exit(app.exec_())
def showdialog():
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("This is a message box")
msg.setInformativeText("This is additional information")
msg.setWindowTitle("MessageBox demo")
msg.setDetailedText("The details are as follows:")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
msg.buttonClicked.connect(msgbtn)
retval = msg.exec_()
def msgbtn(i):
print ("Button pressed is:",i.text())
if __name__ == '__main__':
window()
위의 코드는 다음 출력을 생성합니다. 메인 윈도우의 버튼을 클릭하면 메시지 박스가 나타납니다-
MessageBox에서 Ok 또는 Cancel 버튼을 클릭하면 다음 출력이 콘솔에 생성됩니다.
Button pressed is: OK
Button pressed is: Cancel