Nødvendige metoder
QMessageBox-klassen har mange metoder til at oprette forskellige typer meddelelsesfelter. Nogle af de mere almindeligt anvendte metoder i QMessageBox-klassen er beskrevet nedenfor:
Metodenavne | Formål |
---|---|
setTitle () | Bruges til at vise den brugerdefinerede titel. |
setText () | Bruges til at indstille teksten til hovedmeddelelsen. |
setDetailText () | Bruges til at vise et vindue med en detaljeret knap; meddelelsesteksten vises, når brugeren klikker på knappen. |
setInformativeText | Bruges til at få vist den ekstra besked. |
setIcon () | Bruges til at indstille et ikon i meddelelsesfeltet baseret på meddelelsestypen. |
setWindowTitle () | Bruges til at indstille titlen på meddelelsesvinduet. |
setDefaultButton () | Bruges til at indstille knappen i meddelelsesfeltets standard; knappen frigiver et klikket signal, når Gå ind tasten trykkes. |
setEscapeButton () | Bruges til at indstille en hvilken som helst knap til at fungere som en flugtnøgle; knappen frigiver et klikket signal, når Flugt tasten trykkes. |
setStandardButtons () | Forskellige standardknapper kan bruges i meddelelsesboksen baseret på meddelelsestypen, såsom OK, Ja, Nej, Annuller, Luk osv. |
QMessageBox-brug
De følgende afsnit i denne vejledning giver eksempler, der viser dig, hvordan du opretter forskellige meddelelsesfelter ved hjælp af QMessageBox-klassen.
Eksempel 1: Opret en informationsboks
Det følgende script opretter en simpel informationsboks ved hjælp af QMessageBox-klassen. Denne type meddelelsesfelt giver kun informationsbeskeden til brugeren. Okay er standardknappen i meddelelsesfeltet. Her, QMessageBox.Information bruges i setIcon () metode til at få vist informationsikonet i meddelelsesfeltet.
# Importer nødvendige modulerimporter sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QMessageBox
# Definer klasse for at få vist en informationsbesked
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring til forældrekonstruktøren
super().__i det__()
# Opret messagebox-objektet
selv.msg = QMessageBox ()
# Indstil informationsikonet
selv.msg.setIcon (QMessageBox.Information)
# Indstil hovedmeddelelsen
selv.msg.setText ("Opgaven er fuldført.")
# Indstil titlen på vinduet
selv.msg.setWindowTitle ("Informationsmeddelelse")
# Vis meddelelsesfeltet
selv.msg.at vise()
# Opret app-objekt og kør appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.udføre ()
Følgende meddelelsesboks vises, når ovenstående script er udført.
Eksempel 2: Opret en advarselsmeddelelsesboks
Det følgende script opretter en advarselsboks ved hjælp af QMessageBox-klassen. Denne type meddelelsesboks giver advarslen til brugeren. Det advarsel bruges i setIcon () metode til at vise advarselsikonet i meddelelsesfeltet. Det Okay og Afbestille knapper føjes til meddelelsesfeltet ved hjælp af setStandardButtons () metode. En brugerdefineret metode kaldet msgButton () er defineret i klassen for at spore knappen i meddelelsesboksen, som brugeren har klikket på. Hvis brugeren klikker på Okay knappen, derefter teksten, 'Der trykkes på OK-knappen,'vil udskrive; ellersDer trykkes på knappen Annuller'tekst udskrives.
# Importer nødvendige modulerimporter sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QMessageBox
# Definer klasse for at få vist en informationsbesked
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring til forældrekonstruktøren
super().__i det__()
# Opret messagebox-objektet
selv.msgWarning = QMessageBox ()
# Indstil advarselsikonet
selv.msgAdvarsel.setIcon (QMessageBox.Advarsel)
# Indstil hovedmeddelelsen
selv.msgAdvarsel.setText ("Navn variabel er udefineret.")
# Indstil to knapper til meddelelsesboksen
selv.msgAdvarsel.setStandardButtons (QMessageBox.Ok | QMessageBox.Afbestille)
# Ring til den brugerdefinerede metode ved at klikke på knappen
selv.msgAdvarsel.knapKlikt.forbinde (selv.msgButton)
# Indstil titlen på vinduet
selv.msgAdvarsel.setWindowTitle ("Advarselsmeddelelse")
# Vis meddelelsesfeltet
selv.msgAdvarsel.at vise()
# Definer funktion for knapperne
def msgButton (selv, i):
hvis jeg.tekst () == '& OK':
udskriv ("OK knap trykkes.")
andet:
print ("Annuller knap trykkes.")
# Opret app-objekt og kør appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()
Følgende meddelelsesboks vises, når ovenstående script er udført.
Hvis brugeren klikker på Okay knappen, vises følgende output.
Eksempel 3: Opret en Spørgsmål Advarsel Besked
Det følgende script opretter spørgsmålsmeddelelsesfeltet ved hjælp af QMessageBox-klassen. Denne type meddelelsesboks giver spørgsmålbeskeden til brugeren om at tage den særlige handling baseret på brugerens beslutning. Her, QMessageBox.Spørgsmål bruges i setIcon () metode til at vise spørgsmålikonet i meddelelsesfeltet. Det Ja og Ingen knapper føjes til meddelelsesfeltet ved hjælp af setStandardButtons () metode. Det Ingen knappen er indstillet som standardknap ved hjælp af metoden setDefaultButton (). En brugerdefineret metode kaldet msgButton () er defineret i klassen for at spore knappen i meddelelsesfeltet, som brugeren har klikket på.
# Importer nødvendige modulerimporter sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QMessageBox
# Definer klasse for at få vist en informationsbesked
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring til forældrekonstruktøren
super().__i det__()
# Opret messagebox-objektet
selv.msgQuestion = QMessageBox ()
# Indstil advarselsikonet
selv.msgsspørgsmål.setIcon (QMessageBox.Spørgsmål)
# Indstil hovedmeddelelsen
selv.msgsspørgsmål.setText ("Vil du fortsætte?")
# Indstil to knapper til meddelelsesboksen
selv.msgsspørgsmål.setStandardButtons (QMessageBox.Ja | QMessageBox.Ingen)
selv.msgsspørgsmål.setDefaultButton (QMessageBox.Ingen)
# Ring til den brugerdefinerede metode ved at klikke på knappen
selv.msgsspørgsmål.knapKlikt.forbinde (selv.msgButton)
# Indstil titlen på vinduet
selv.msgsspørgsmål.setWindowTitle ("Stil spørgsmål til brugeren")
# Vis meddelelsesfeltet
selv.msgsspørgsmål.at vise()
# Definer funktion for knapperne
def msgButton (selv, i):
hvis jeg.tekst () == '& Ja':
print ("Opgaven fortsætter ...")
andet:
print ("Du har annulleret opgaven.")
# Opret app-objekt og kør appen
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()
Følgende meddelelsesboks vises, når ovenstående script er udført.
Hvis brugeren klikker på Gå ind uden at vælge nogen knapper, derefter Ingen -knappen aktiveres som standard, og følgende output vises:
Konklusion
I denne vejledning blev tre forskellige typer beskedfelter oprettet ved hjælp af klassen QMessageBox. Forhåbentlig hjalp denne tutorial dig til bedre at forstå brugen af denne klasse. Du skal nu være i stand til at oprette et meddelelsesfelt til PyQt-applikationen.