Python

Sådan bruges PyQt QMessageBox

Sådan bruges PyQt QMessageBox
Beskedfeltet bruges i GUI-applikationen til at give den nødvendige information til brugeren eller til at bede brugeren om at udføre handlinger baseret på beskeden. Fire typer meddelelsesfelter kan oprettes til ethvert GUI-program, herunder informationsfeltet, advarselsmeddelelsesfeltet, kritisk meddelelsesfelt og spørgsmålsmeddelelsesfeltet. Det QMessageBox klasse af PyQt bruges i Python til at oprette en meddelelsesboks. Denne vejledning viser dig, hvordan du bruger QMessageBox-klassen til at oprette forskellige meddelelsesfelter.

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 moduler
importer 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 moduler
importer 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 moduler
importer 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.

Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...