Python

Как да използвам PyQt QMessageBox

Как да използвам PyQt QMessageBox
Полето за съобщение се използва в GUI приложението, за да предостави необходимата информация за потребителя или да поиска от потребителя да предприеме действия въз основа на съобщението. Четири типа кутии за съобщения могат да бъдат създадени за всяко приложение с графичен интерфейс, включително информационното поле за съобщения, полето за предупреждение, полето за критично съобщение и полето за въпроси. The QMessageBox класът на PyQt се използва в Python за създаване на кутия за съобщения. Този урок ви показва как да използвате класа QMessageBox за създаване на различни полета за съобщения.

Необходими методи

Класът 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.

Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...