PyQt5-QMessageBox

QMessageBox일부 정보 메시지를 표시하고 선택적으로 사용자에게 표준 버튼 중 하나를 클릭하여 응답하도록 요청하는 데 일반적으로 사용되는 모달 대화 상자입니다. 각 표준 버튼에는 미리 정의 된 캡션과 역할이 있으며 미리 정의 된 16 진수를 반환합니다.

QMessageBox 클래스와 관련된 중요한 메서드와 열거는 다음 표에 나와 있습니다.

Sr. 아니. 방법 및 설명
1

setIcon()

메시지의 심각도에 따라 미리 정의 된 아이콘을 표시합니다.

  • Question
  • Information
  • Warning
  • Critical
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