Pytonorm

Hur man använder PyQt QMessageBox

Hur man använder PyQt QMessageBox
Meddelandefältet används i GUI-applikationen för att tillhandahålla nödvändig information för användaren eller för att be användaren att vidta åtgärder baserat på meddelandet. Fyra typer av meddelanderutor kan skapas för alla GUI-applikationer, inklusive informationsruta, varningsmeddelande, kritisk meddelanderuta och frågeställningsruta. De QMessageBox klass av PyQt används i Python för att skapa en meddelanderuta. Denna handledning visar hur du använder klassen QMessageBox för att skapa olika meddelanderutor.

Nödvändiga metoder

QMessageBox-klassen har många metoder för att skapa olika typer av meddelanderutor. Några av de vanligaste metoderna i QMessageBox-klassen beskrivs nedan:

Metodnamn  Syfte
setTitle () Används för att visa den anpassade titeln.
setText () Används för att ställa in texten i huvudmeddelandet.
setDetailText () Används för att visa ett fönster med en detaljerad knapp; meddelandetexten visas när användaren klickar på knappen.
setInformativeText Används för att visa ytterligare meddelande.
setIcon () Används för att ställa in en ikon i meddelandefältet baserat på meddelandetypen.
setWindowTitle () Används för att ställa in titeln på meddelandefönstret.
setDefaultButton () Används för att ställa in knappen i meddelandefältets standard; knappen släpper en klickad signal när Stiga på knappen trycks in.
setEscapeButton () Används för att ställa in valfri knapp för att fungera som en flyktangent; knappen släpper en klickad signal när Fly knappen trycks in.
setStandardButtons () Olika standardknappar kan användas i meddelandefältet baserat på meddelandetypen, till exempel OK, Ja, Nej, Avbryt, Stäng osv.

QMessageBox-användning

Följande avsnitt i denna handledning ger exempel som visar hur du skapar olika meddelanderutor med hjälp av QMessageBox-klassen.

Exempel 1: Skapa en informationsruta

Följande skript skapar en enkel informationsruta med hjälp av QMessageBox-klassen. Den här typen av meddelanderuta ger endast informationsmeddelandet för användaren. OK är standardknappen i meddelandefältet. Här, QMessageBox.Information används i setIcon () metod för att visa informationsikonen i meddelandefältet.

# Importera nödvändiga moduler
importera sys
från PyQt5.QtWidgets importerar QApplication, QMainWindow, QMessageBox
# Definiera klass för att visa ett informationsmeddelande
klass MessageWindow (QMainWindow):
def __init __ (själv):
# Ring föräldrakonstruktören
super().__i det__()
# Skapa messagebox-objektet
själv.msg = QMessageBox ()
# Ställ in informationsikonen
själv.msg.setIcon (QMessageBox.Information)
# Ställ in huvudmeddelandet
själv.msg.setText ("Uppgiften är klar.")
# Ställ in fönstrets titel
själv.msg.setWindowTitle ("Informationsmeddelande")
# Visa meddelanderutan
själv.msg.show()
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec ()

Följande meddelanderuta visas efter att ovanstående skript har körts.

Exempel 2: Skapa en varningsmeddelande ruta

Följande skript skapar en varningsmeddelande med QMessageBox-klassen. Den här typen av meddelanderuta ger användaren ett varningsmeddelande. De varning används i setIcon () metod för att visa varningsikonen i meddelandefältet. De OK och Avbryt knapparna läggs till i meddelandefältet med setStandardButtons () metod. En anpassad metod som kallas msgButton () definieras i klassen för att spåra knappen i meddelandefältet som användaren har klickat på. Om användaren klickar på OK knappen, sedan texten, 'OK-knappen trycks in,kommer att skriva ut; annars, 'Avbryt-knappen trycks intexten kommer att skrivas ut.

# Importera nödvändiga moduler
importera sys
från PyQt5.QtWidgets importerar QApplication, QMainWindow, QMessageBox
# Definiera klass för att visa ett informationsmeddelande
klass MessageWindow (QMainWindow):
def __init __ (själv):
# Ring föräldrakonstruktören
super().__i det__()
# Skapa messagebox-objektet
själv.msgWarning = QMessageBox ()
# Ställ in varningsikonen
själv.msgVarning.setIcon (QMessageBox.Varning)
# Ställ in huvudmeddelandet
själv.msgVarning.setText ("namn variabel är odefinierad.")
# Ställ in två knappar för meddelanderutan
själv.msgVarning.setStandardButtons (QMessageBox.Ok | QMessageBox.Avbryt)
# Ring den anpassade metoden på knappen som du klickar på
själv.msgVarning.knappKlickade.ansluta (själv.msgButton)
# Ställ in fönstrets titel
själv.msgVarning.setWindowTitle ("Varningsmeddelande")
# Visa meddelanderutan
själv.msgVarning.show()
# Definiera funktion för knapparna
def msgButton (själv, i):
om jag.text () == '& OK':
skriv ut ("OK-knappen trycks in.")
annan:
skriv ut ("Avbryt-knappen trycks in.")
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()

Följande meddelanderuta visas efter att ovanstående skript har körts.

Om användaren klickar på OK -knappen visas följande utgång.

Exempel 3: Skapa en Fråga Varning Meddelande

Följande skript skapar en meddelandefält med QMessageBox-klassen. Denna typ av meddelandefält ger frågemeddelandet för användaren att vidta den specifika åtgärden baserat på användarens beslut. Här, QMessageBox.Fråga används i setIcon () metod för att visa frågesymbolen i meddelandefältet. De Ja och Nej knapparna läggs till i meddelandefältet med setStandardButtons () metod. De Nej -knappen ställs in som standardknapp med metoden setDefaultButton (). En anpassad metod som kallas msgButton () definieras i klassen för att spåra knappen i meddelandefältet som användaren har klickat på.

# Importera nödvändiga moduler
importera sys
från PyQt5.QtWidgets importerar QApplication, QMainWindow, QMessageBox
# Definiera klass för att visa ett informationsmeddelande
klass MessageWindow (QMainWindow):
def __init __ (själv):
# Ring föräldrakonstruktören
super().__i det__()
# Skapa messagebox-objektet
själv.msgQuestion = QMessageBox ()
# Ställ in varningsikonen
själv.msgFråga.setIcon (QMessageBox.Fråga)
# Ställ in huvudmeddelandet
själv.msgFråga.setText ("Vill du fortsätta?")
# Ställ in två knappar för meddelanderutan
själv.msgFråga.setStandardButtons (QMessageBox.Ja | QMessageBox.Nej)
själv.msgFråga.setDefaultButton (QMessageBox.Nej)
# Ring den anpassade metoden på knappen som klickas
själv.msgFråga.knappKlickade.ansluta (själv.msgButton)
# Ställ in fönstrets titel
själv.msgFråga.setWindowTitle ("Ställ en fråga till användaren")
# Visa meddelanderutan
själv.msgFråga.show()
# Definiera funktion för knapparna
def msgButton (själv, i):
om jag.text () == '& Ja':
skriva ut ("Uppgiften fortsätter ...")
annan:
skriv ut ("Du har avbrutit uppgiften.")
# Skapa appobjekt och kör appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()

Följande meddelanderuta visas efter att ovanstående skript har körts.

Om användaren klickar på Stiga på utan att välja några knappar, sedan på Nej -knappen aktiveras som standard och följande utdata visas:

Slutsats

I den här självstudien skapades tre olika typer av meddelandefält med hjälp av klassen QMessageBox. Förhoppningsvis hjälpte denna handledning dig att bättre förstå användningen av den här klassen. Du borde nu kunna skapa en meddelanderuta för PyQt-applikationen.

Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...