Python

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 å utføre handlinger basert på meldingen. Fire typer meldingsbokser kan opprettes for ethvert GUI-program, inkludert informasjonsboksen, advarselsboksen, kritisk meldingsboks og spørsmålsmeldingsboksen. De QMessageBox klasse av PyQt brukes i Python for å lage en meldingsboks. Denne veiledningen viser deg hvordan du bruker QMessageBox-klassen til å lage forskjellige meldingsbokser.

Nødvendige metoder

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

Metodenavn  Hensikt
setTitle () Brukes til å vise den egendefinerte tittelen.
setText () Brukes til å stille inn teksten til hovedmeldingen.
setDetailText () Brukes til å vise et vindu med en detaljknapp; meldingsteksten vises etter at brukeren klikker på knappen.
setInformativeText 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 meldingsfeltet som standard; knappen vil frigjøre et klikket signal når Tast inn tasten 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 tasten trykkes.
setStandardButtons () Ulike standardknapper kan brukes i meldingsboksen basert på meldingstypen, for eksempel OK, Ja, Nei, Avbryt, Lukk osv.

Bruk av QMessageBox

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

Eksempel 1: Opprett en informasjonsmeldingsboks

Følgende skript oppretter en enkel informasjonsmeldingsboks ved bruk 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
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Lag meldingsboksen objektet
selv-.msg = QMessageBox ()
# Sett informasjonsikonet
selv-.msg.setIcon (QMessageBox.Informasjon)
# Angi hovedmeldingen
selv-.msg.setText ("Oppgaven er fullført.")
# Sett tittelen på vinduet
selv-.msg.setWindowTitle ("Informasjonsmelding")
# Vis meldingsboksen
selv-.msg.vise fram()
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
Vinn = MessageWindow ()
app.utføre ()

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

Eksempel 2: Opprett en advarselsboks

Følgende skript oppretter advarselsboksen ved hjelp av QMessageBox-klassen. Denne typen meldingsboks gir advarselen til brukeren. De advarsel brukes i setIcon () metode for å vise advarselsikonet i meldingsboksen. De OK og Avbryt knappene legges til meldingsboksen ved hjelp av setStandardButtons () metode. En tilpasset metode kalt msgButton () er definert i klassen for å spore knappen i meldingsboksen som brukeren har klikket på. Hvis brukeren klikker på OK knappen, deretter teksten, 'OK-knappen trykkes,'vil skrive ut; ellers, 'Avbryt-knappen trykkesteksten skrives ut.

# Importer nødvendige moduler
importer sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QMessageBox
# Definer klasse for å vise en informasjonsmelding
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Lag meldingsboksen objektet
selv-.msgWarning = QMessageBox ()
# Sett advarselikonet
selv-.msgAdvarsel.setIcon (QMessageBox.Advarsel)
# Angi hovedmeldingen
selv-.msgAdvarsel.setText ("Navn variabel er udefinert.")
# Sett to knapper for meldingsboksen
selv-.msgAdvarsel.setStandardButtons (QMessageBox.OK | QMessageBox.Avbryt)
# Ring den egendefinerte metoden ved å klikke på knappen
selv-.msgAdvarsel.knappKlikket.koble (selv.msgButton)
# Sett tittelen på vinduet
selv-.msgAdvarsel.setWindowTitle ("Advarsel")
# Vis meldingsboksen
selv-.msgAdvarsel.vise fram()
# Definer funksjon for knappene
def msgButton (selv, i):
hvis jeg.tekst () == '& OK':
skriv ut ("OK-knappen trykkes.")
ellers:
skriv ut ("Avbryt-knappen trykkes.")
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
Vinn = MessageWindow ()
app.exec_ ()

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

Hvis brukeren klikker på OK -knappen, vises følgende utgang.

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

Følgende skript oppretter spørsmålsmeldingsboksen ved hjelp av QMessageBox-klassen. Denne typen meldingsboks gir spørsmålsmeldingen for brukeren til å utføre den bestemte 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 knappene legges til meldingsboksen ved hjelp av setStandardButtons () metode. De Nei -knappen er angitt som standardknapp ved å bruke metoden setDefaultButton (). En tilpasset metode kalt msgButton () er definert i klassen for å spore knappen i meldingsboksen som brukeren har klikket på.

# Importer nødvendige moduler
importer sys
fra PyQt5.QtWidgets importerer QApplication, QMainWindow, QMessageBox
# Definer klasse for å vise en informasjonsmelding
klasse MessageWindow (QMainWindow):
def __init __ (selv):
# Ring foreldrekonstruktøren
super().__i det__()
# Lag meldingsboksen objektet
selv-.msgQuestion = QMessageBox ()
# Sett advarselikonet
selv-.msgsspørsmål.setIcon (QMessageBox.Spørsmål)
# Angi hovedmeldingen
selv-.msgsspørsmål.setText ("Vil du fortsette?")
# Sett to knapper for meldingsboksen
selv-.msgsspørsmål.setStandardButtons (QMessageBox.Ja | QMessageBox.Nei)
selv-.msgsspørsmål.setDefaultButton (QMessageBox.Nei)
# Ring den egendefinerte metoden ved å klikke på knappen
selv-.msgsspørsmål.knappKlikket.koble (selv.msgButton)
# Sett tittelen på vinduet
selv-.msgsspørsmål.setWindowTitle ("Still spørsmål til brukeren")
# Vis meldingsboksen
selv-.msgsspørsmål.vise fram()
# Definer funksjon for knappene
def msgButton (selv, i):
hvis jeg.tekst () == '& Ja':
skriv ut ("Oppgaven fortsetter ...")
ellers:
print ("Du har avbrutt oppgaven.")
# Opprett appobjekt og kjør appen
app = QApplication (sys.argv)
Vinn = MessageWindow ()
app.exec_ ()

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

Hvis brukeren klikker på Tast inn uten å velge noen knapper, deretter Nei -knappen blir aktivert som standard, og følgende utgang vises:

Konklusjon

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

Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...