Необходими методи
Класът QMessageBox има много методи за създаване на различни видове кутии за съобщения. Някои от най-често използваните методи от класа QMessageBox са описани по-долу:
Имена на методите | Предназначение |
---|---|
setTitle () | Използва се за показване на персонализираното заглавие. |
setText () | Използва се за задаване на текста на основното съобщение. |
setDetailText () | Използва се за показване на прозорец с бутон за подробности; текстът на съобщението ще се появи, след като потребителят щракне върху бутона. |
setInformativeText | Използва се за показване на допълнителното съобщение. |
setIcon () | Използва се за задаване на икона в полето за съобщение въз основа на типа съобщение. |
setWindowTitle () | Използва се за задаване на заглавието на прозореца на съобщението. |
setDefaultButton () | Използва се за задаване на бутона в полето за съобщения по подразбиране; бутонът ще пусне щракнат сигнал, когато Въведете бутонът е натиснат. |
setEscapeButton () | Използва се за настройване на всеки бутон да работи като клавиш за бягство; бутонът ще пусне щракнат сигнал, когато Бягство бутонът е натиснат. |
setStandardButtons () | Различни стандартни бутони могат да се използват в полето за съобщения въз основа на типа съобщение, като ОК, Да, Не, Отказ, Затваряне и т.н. |
Използване на QMessageBox
Следващите раздели на този урок предоставят примери, които ще ви покажат как да създадете различни полета за съобщения с помощта на класа QMessageBox.
Пример 1: Създайте информационно поле за съобщения
Следният скрипт ще създаде просто информационно поле за съобщения, използвайки класа QMessageBox. Този тип поле за съобщения предоставя информационното съобщение само за потребителя. Добре е бутонът по подразбиране в полето за съобщения. Тук, QMessageBox.Информация се използва в setIcon () метод за показване на иконата за информация в полето за съобщения.
# Импортирайте необходимите модулиимпортиране на sys
от PyQt5.QtWidgets импортират QApplication, QMainWindow, QMessageBox
# Определете клас, за да се покаже информационно съобщение
клас MessageWindow (QMainWindow):
def __init __ (самостоятелно):
# Извикайте родителския конструктор
супер ().__в него__()
# Създайте обекта на кутията за съобщения
себе си.msg = QMessageBox ()
# Задайте иконата за информация
себе си.съобщ.setIcon (QMessageBox.Информация)
# Задайте основното съобщение
себе си.съобщ.setText ("Задачата е изпълнена успешно.")
# Задайте заглавието на прозореца
себе си.съобщ.setWindowTitle ("Информационно съобщение")
# Показване на полето за съобщение
себе си.съобщ.покажи ()
# Създайте обект на приложение и стартирайте приложението
app = QApplication (sys.argv)
Win = MessageWindow ()
ап.exec ()
Следното поле за съобщение ще се появи след изпълнението на горния скрипт.
Пример 2: Създайте поле за предупреждение
Следният скрипт ще създаде полето за предупреждение, използвайки класа QMessageBox. Този тип поле за съобщение предоставя предупредителното съобщение за потребителя. The внимание се използва в setIcon () метод за показване на иконата за предупреждение в полето за съобщения. The Добре и Отказ бутоните се добавят в полето за съобщения с помощта на setStandardButtons () метод. Извиква се персонализиран метод msgButton () е дефиниран в класа за проследяване на бутона в полето за съобщение, който е щракнат от потребителя. Ако потребителят щракне върху Добре бутона, след това текста, 'Бутонът OK е натиснат,'ще отпечата; в противен случай „Натиска се бутон Отказ'текстът ще се отпечата.
# Импортирайте необходимите модулиимпортиране на sys
от PyQt5.QtWidgets импортират QApplication, QMainWindow, QMessageBox
# Определете клас, за да се покаже информационно съобщение
клас MessageWindow (QMainWindow):
def __init __ (самостоятелно):
# Извикайте родителския конструктор
супер ().__в него__()
# Създайте обекта на кутията за съобщения
себе си.msgWarning = QMessageBox ()
# Задайте иконата за предупреждение
себе си.msg Внимание.setIcon (QMessageBox.Внимание)
# Задайте основното съобщение
себе си.msg Внимание.setText ("Име променливата е недефинирана.")
# Задайте два бутона за полето за съобщения
себе си.msg Внимание.setStandardButtons (QMessageBox.Добре | QMessageBox.Отказ)
# Извикайте персонализирания метод при щракване върху бутона
себе си.msg Внимание.buttonClicked.свързване (самостоятелно.msgButton)
# Задайте заглавието на прозореца
себе си.msg Внимание.setWindowTitle ("Предупредително съобщение")
# Показване на полето за съобщение
себе си.msg Внимание.покажи ()
# Определете функцията за бутоните
def msgButton (self, i):
ако аз.text () == '& OK':
print ("Бутонът OK е натиснат.")
друго:
print ("Бутонът Cancel е натиснат.")
# Създайте обект на приложение и стартирайте приложението
app = QApplication (sys.argv)
Win = MessageWindow ()
ап.exec_ ()
Следното поле за съобщение ще се появи след изпълнението на горния скрипт.
Ако потребителят щракне върху Добре бутон, ще се появи следният изход.
Пример 3: Създайте a Въпрос Внимание Съобщение
Следният скрипт ще създаде полето за съобщения с въпроси, използвайки класа QMessageBox. Този тип поле за съобщение предоставя на потребителя съобщение с въпрос, за да предприеме конкретното действие въз основа на решението на потребителя. Тук, QMessageBox.Въпрос се използва в setIcon () метод за показване на иконата на въпроса в полето за съобщение. The Да и Не бутоните се добавят в полето за съобщения с помощта на setStandardButtons () метод. The Не бутон е зададен като бутон по подразбиране, използвайки метода setDefaultButton (). Извиква се персонализиран метод msgButton () е дефиниран в класа за проследяване на бутона в полето за съобщение, който е щракнат от потребителя.
# Импортирайте необходимите модулиимпортиране на sys
от PyQt5.QtWidgets импортират QApplication, QMainWindow, QMessageBox
# Определете клас, за да се покаже информационно съобщение
клас MessageWindow (QMainWindow):
def __init __ (самостоятелно):
# Извикайте родителския конструктор
супер ().__в него__()
# Създайте обекта на кутията за съобщения
себе си.msgQuestion = QMessageBox ()
# Задайте иконата за предупреждение
себе си.msgQuestion.setIcon (QMessageBox.Въпрос)
# Задайте основното съобщение
себе си.msgQuestion.setText ("Искате ли да продължите?")
# Задайте два бутона за полето за съобщения
себе си.msgQuestion.setStandardButtons (QMessageBox.Да | QMessageBox.Не)
себе си.msgQuestion.setDefaultButton (QMessageBox.Не)
# Извикайте персонализирания метод при щракване върху бутона
себе си.msgQuestion.бутонКликано.свързване (самостоятелно.msgButton)
# Задайте заглавието на прозореца
себе си.msgQuestion.setWindowTitle ("Задаване на въпрос на потребител")
# Показване на полето за съобщение
себе си.msgQuestion.покажи ()
# Определете функцията за бутоните
def msgButton (self, i):
ако аз.text () == '& Да':
print ("Задачата продължава ...")
друго:
print ("Отменили сте задачата.")
# Създайте обект на приложение и стартирайте приложението
app = QApplication (sys.argv)
Win = MessageWindow ()
ап.exec_ ()
Следното поле за съобщение ще се появи след изпълнението на горния скрипт.
Ако потребителят щракне върху Въведете , без да избирате бутони, след това бутона Не бутон ще бъде активиран по подразбиране и ще се появи следният изход:
Заключение
В този урок бяха създадени три различни типа кутии за съобщения с помощта на класа QMessageBox. Надяваме се, този урок да ви помогне да разберете по-добре използването на този клас. Вече трябва да можете да създадете поле за съобщение за приложението PyQt.