Hvordan bruke Pyqt QMessageBox

Hvordan bruke Pyqt QMessageBox
Meldingsboksen brukes i GUI -applikasjonen for å gi nødvendig informasjon for brukeren eller for å be brukeren om å ta handlinger basert på meldingen. Fire typer meldingsbokser kan opprettes for alle GUI -applikasjoner, inkludert informasjonsboks, advarselsmeldingsboks, kritisk meldingsboks og spørsmålsboks. De QMessageBox klasse av pyqt brukes i python for å lage en meldingsboks. Denne opplæringen viser deg hvordan du bruker QMessageBox -klassen for å lage forskjellige meldingsbokser.

Nødvendige metoder

QMessageBox -klassen har mange metoder for å lage forskjellige typer meldingsbokser. Noen av de mer ofte brukte metodene i QMessageBox -klassen er beskrevet nedenfor:

Metodenavn Hensikt
Settitle () Brukes til å vise den tilpassede tittelen.
SettExt () Brukes til å angi teksten til hovedmeldingen.
setDetailText () Brukes til å vise et vindu med en detaljknapp; Meldingsteksten vises etter at brukeren klikket på knappen.
setinformativText Brukes til å vise tilleggsmeldingen.
seticon () Brukes til å angi et ikon i meldingsboksen basert på meldingstypen.
setWindowTitle () Brukes til å angi tittelen på meldingsvinduet.
setDefaultButton () Brukes til å angi knappen i meldingsboksen standard; Knappen vil frigjøre et klikket signal når Tast inn Nøkkelen trykkes.
setescapeButton () Brukes til å stille inn hvilken som helst knapp til å fungere som en rømningsnøkkel; Knappen vil frigjøre et klikket signal når Flukt Nøkkelen trykkes.
setStandardButtons () Ulike standardknapper kan brukes i meldingsboksen basert på meldingstypen, for eksempel OK, ja, nei, avbryt, lukk, etc.

QMessageBox -bruk

Følgende seksjoner av denne opplæringen gir eksempler som viser deg hvordan du oppretter forskjellige meldingsbokser ved hjelp av QMessageBox -klassen.

Eksempel 1: Opprett en informasjonsboks

Følgende skript oppretter en enkel informasjonsboks ved hjelp av QMessageBox -klassen. Denne typen meldingsboks gir kun informasjonsmeldingen for brukeren. Ok er standardknappen i meldingsboksen. Her, QMessageBox.Informasjon brukes i seticon () Metode for å vise informasjonsikonet i meldingsboksen.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets importerer Qapplication, QMainWindow, QMessageBox
# Definer klasse for å vise en informasjonsmelding
KlassemeldingWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Opprett MessageBox -objektet
selv-.msg = qMessageBox ()
# Angi informasjonsikonet
selv-.msg.Seticon (QMessageBox.Informasjon)
# Angi hovedmeldingen
selv-.msg.setText ("Oppgaven er fullført.")
# Angi tittelen på vinduet
selv-.msg.setWindowTitle ("Informasjonsmelding")
# Vis meldingsboksen
selv-.msg.forestilling()
# Lag appobjekt og kjør appen
app = qapplication (sys.argv)
Win = MessageWindow ()
app.exec ()

Følgende meldingsboks vises etter at skriptet ovenfor er utført.

Eksempel 2: Opprett en advarselboks

Følgende skript oppretter advarselsmeldingsboksen ved hjelp av QMessageBox -klassen. Denne typen meldingsbokser gir advarselen for brukeren. De advarsel brukes i seticon () Metode for å vise advarselsikonet i meldingsboksen. De Ok og Avbryt Knapper legges til i meldingsboksen ved hjelp av setStandardButtons () metode. En tilpasset metode som heter msgButton () er definert i klassen for å spore knappen i meldingsboksen som er klikket av brukeren. Hvis brukeren klikker på Ok knapp, så teksten, 'OK -knapp er trykket på,'Vil skrive ut; Ellers, 'Avbryt knappen trykkes'Teksten skriver ut.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets importerer Qapplication, QMainWindow, QMessageBox
# Definer klasse for å vise en informasjonsmelding
KlassemeldingWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Opprett MessageBox -objektet
selv-.msgwarning = qMessageBox ()
# Angi advarselsikonet
selv-.msgwarning.Seticon (QMessageBox.Advarsel)
# Angi hovedmeldingen
selv-.msgwarning.SettExt ("Navn Variabel er udefinert.")
# Angi to knapper for meldingsboksen
selv-.msgwarning.SetStandArdButtons (QMessageBox.Ok | QMessageBox.Avbryt)
# Ring den tilpassede metoden på knapp klikket
selv-.msgwarning.knappklikket.Koble til (selv.msgbutton)
# Angi tittelen på vinduet
selv-.msgwarning.setWindowTitle ("Advarsel")
# Vis meldingsboksen
selv-.msgwarning.forestilling()
# Definer funksjon for knappene
Def MsgButton (Self, I):
hvis jeg.tekst () == '& ok':
Skriv ut ("OK -knapp er trykket på.")
ellers:
Skriv ut ("Avbryt knappen trykkes.")
# Lag appobjekt og kjør appen
app = qapplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()

Følgende meldingsboks vises etter at skriptet ovenfor er utført.

Hvis brukeren klikker på Ok Knappen, følgende utdata vises.

Eksempel 3: Lag en Spørsmål Advarsel Beskjed

Følgende skript oppretter spørsmålsboksen ved hjelp av QMessageBox -klassen. Denne typen meldingsboks gir spørsmålsmeldingen for brukeren å ta den aktuelle handlingen basert på brukerens beslutning. Her, QMessageBox.Spørsmål brukes i seticon () Metode for å vise spørsmålsikonet i meldingsboksen. De Ja og Nei Knapper legges til i meldingsboksen ved hjelp av setStandardButtons () metode. De Nei Knappen er angitt som standardknappen ved hjelp av SetDefaultButton () -metoden. En tilpasset metode som heter msgButton () er definert i klassen for å spore knappen i meldingsboksen som er klikket av brukeren.

# Importer nødvendige moduler
Importer Sys
Fra PYQT5.QtWidgets importerer Qapplication, QMainWindow, QMessageBox
# Definer klasse for å vise en informasjonsmelding
KlassemeldingWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Opprett MessageBox -objektet
selv-.msgquestion = qMessageBox ()
# Angi advarselsikonet
selv-.msgquestion.Seticon (QMessageBox.Spørsmål)
# Angi hovedmeldingen
selv-.msgquestion.setText ("Vil du fortsette?")
# Angi to knapper for meldingsboksen
selv-.msgquestion.SetStandArdButtons (QMessageBox.Ja | QMessageBox.Nei)
selv-.msgquestion.SetDefaultButton (QMessageBox.Nei)
# Ring den tilpassede metoden på knapp klikket
selv-.msgquestion.knappklikket.Koble til (selv.msgbutton)
# Angi tittelen på vinduet
selv-.msgquestion.SetWindowTitle ("Still spørsmål til bruker")
# Vis meldingsboksen
selv-.msgquestion.forestilling()
# Definer funksjon for knappene
Def MsgButton (Self, I):
hvis jeg.tekst () == '& ja':
trykk ("Oppgaven fortsetter ...")
ellers:
trykk ("Du har kansellert oppgaven.")
# Lag appobjekt og kjør appen
app = qapplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()

Følgende meldingsboks vises etter at skriptet ovenfor er utført.

Hvis brukeren klikker på Tast inn nøkkel uten å velge noen knapper, deretter Nei Knappen vil bli aktivert som standard, og følgende utdata vises:

Konklusjon

I denne opplæringen ble tre forskjellige typer meldingsbokser opprettet ved hjelp av QMessageBox -klassen. Forhåpentligvis hjalp denne opplæringen deg til å forstå bruken av denne klassen bedre. Du skal nå kunne opprette en meldingsboks for PYQT -applikasjonen.