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 modulerimporter 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 modulerimporter 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 modulerimporter 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.