Potrebne metode
Razred QMessageBox ima veliko metod za ustvarjanje različnih vrst sporočil. Nekatere najpogosteje uporabljene metode razreda QMessageBox so opisane spodaj:
Imena metod | Namen |
---|---|
setTitle () | Uporablja se za prikaz naslova po meri. |
setText () | Uporablja se za nastavitev besedila glavnega sporočila. |
setDetailText () | Uporablja se za prikaz okna z gumbom za podrobnosti; besedilo sporočila se bo pojavilo po tem, ko uporabnik klikne gumb. |
setInformativeText | Uporablja se za prikaz dodatnega sporočila. |
setIcon () | Uporablja se za nastavitev ikone v polju za sporočila glede na vrsto sporočila. |
setWindowTitle () | Uporablja se za nastavitev naslova okna s sporočilom. |
setDefaultButton () | Uporablja se za nastavitev gumba v privzetem polju za sporočila; gumb sprosti kliknjen signal, ko se Enter pritisnjena tipka. |
setEscapeButton () | Uporablja se za nastavitev katerega koli gumba, da deluje kot izhodni ključ; gumb sprosti kliknjen signal, ko se Pobegnite pritisnjena tipka. |
setStandardButtons () | Glede na vrsto sporočila lahko v polju za sporočila uporabite različne standardne gumbe, kot so V redu, Da, Ne, Prekliči, Zapri itd. |
Uporaba QMessageBox
V naslednjih razdelkih te vadnice so primeri, ki vam bodo pokazali, kako z razredom QMessageBox ustvarite različna polja za sporočila.
Primer 1: Ustvarite informativno okence za sporočila
Naslednji skript bo ustvaril preprosto informativno okence s pomočjo razreda QMessageBox. Ta vrsta sporočilnega polja vsebuje informativno sporočilo samo za uporabnika. v redu je privzeti gumb v polju za sporočila. Tukaj, QMessageBox.Informacije se uporablja v setIcon () za prikaz ikone z informacijami v polju za sporočila.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets uvozijo QApplication, QMainWindow, QMessageBox
# Določite razred za prikaz informativnega sporočila
razred MessageWindow (QMainWindow):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Ustvarite objekt sporočila
sebe.msg = QMessageBox ()
# Nastavite ikono z informacijami
sebe.sporočilo.setIcon (QMessageBox.Informacije)
# Nastavite glavno sporočilo
sebe.sporočilo.setText ("Naloga je uspešno končana.")
# Nastavite naslov okna
sebe.sporočilo.setWindowTitle ("Informativno sporočilo")
# Prikažite polje za sporočila
sebe.sporočilo.pokaži ()
# Ustvarite objekt aplikacije in zaženite aplikacijo
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec ()
Po izvedbi zgornjega skripta se prikaže naslednje okno s sporočilom.
2. primer: Ustvarite polje z opozorilnim sporočilom
Naslednji skript bo ustvaril polje z opozorilnim sporočilom z uporabo razreda QMessageBox. Ta vrsta sporočilnega polja vsebuje opozorilno sporočilo za uporabnika. The Opozorilo se uporablja v setIcon () za prikaz opozorilne ikone v polju za sporočila. The v redu in Prekliči gumbi se dodajo v polje za sporočila s pomočjo setStandardButtons () metoda. Klicna metoda po meri msgButton () je definiran v razredu za sledenje gumbu v sporočilnem polju, ki ga je uporabnik kliknil. Če uporabnik klikne v redu gumb, nato besedilo, 'Pritisnite gumb OK,'bo natisnjeno; v nasprotnem primeruPritisnite gumb Prekliči'besedilo se bo natisnilo.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets uvozijo QApplication, QMainWindow, QMessageBox
# Določite razred za prikaz informativnega sporočila
razred MessageWindow (QMainWindow):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Ustvarite objekt sporočila
sebe.msgWarning = QMessageBox ()
# Nastavite ikono Opozorilo
sebe.msgOpozorilo.setIcon (QMessageBox.Opozorilo)
# Nastavite glavno sporočilo
sebe.msgOpozorilo.setText ("Ime spremenljivka je nedoločena.")
# Nastavite dva gumba za okno za sporočila
sebe.msgOpozorilo.setStandardButtons (QMessageBox.Ok | QMessageBox.Prekliči)
# Pokličite način po meri s klikom na gumb
sebe.msgOpozorilo.buttonClicked.povezati (samo.msgButton)
# Nastavite naslov okna
sebe.msgOpozorilo.setWindowTitle ("Opozorilo")
# Prikažite polje za sporočila
sebe.msgOpozorilo.pokaži ()
# Določite funkcijo gumbov
def msgButton (self, i):
če jaz.text () == '& OK':
print ("Pritisnite gumb OK.")
sicer:
print ("Pritisnite gumb Prekliči.")
# Ustvarite objekt aplikacije in zaženite aplikacijo
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()
Po izvedbi zgornjega skripta se prikaže naslednje okno s sporočilom.
Če uporabnik klikne v redu , se prikaže naslednji izhod.
3. primer: Ustvarite a Vprašanje Opozorilo Sporočilo
Naslednji skript bo z razredom QMessageBox ustvaril polje za sporočilo z vprašanji. Ta vrsta sporočilnega polja vsebuje sporočilo z vprašanjem, ki ga uporabnik lahko izvede na podlagi odločitve uporabnika. Tukaj, QMessageBox.Vprašanje se uporablja v setIcon () za prikaz ikone vprašanja v polju za sporočila. The Da in Ne gumbi se dodajo v polje za sporočila s pomočjo setStandardButtons () metoda. The Ne gumb je nastavljen kot privzeti gumb z metodo setDefaultButton (). Klicna metoda po meri msgButton () je definiran v razredu za sledenje gumbu v sporočilnem polju, ki ga je uporabnik kliknil.
# Uvozite potrebne moduleuvoz sys
iz PyQt5.QtWidgets uvozijo QApplication, QMainWindow, QMessageBox
# Določite razred za prikaz informativnega sporočila
razred MessageWindow (QMainWindow):
def __init __ (samo):
# Pokliči nadrejeni konstruktor
super ().__v__()
# Ustvarite objekt sporočila
sebe.msgQuestion = QMessageBox ()
# Nastavite ikono Opozorilo
sebe.msgQuestion.setIcon (QMessageBox.Vprašanje)
# Nastavite glavno sporočilo
sebe.msgQuestion.setText ("Ali želite nadaljevati?")
# Nastavite dva gumba za okno za sporočila
sebe.msgQuestion.setStandardButtons (QMessageBox.Da | QMessageBox.Ne)
sebe.msgQuestion.setDefaultButton (QMessageBox.Ne)
# Pokličite način po meri s klikom na gumb
sebe.msgQuestion.buttonClicked.povezati (samo.msgButton)
# Nastavite naslov okna
sebe.msgQuestion.setWindowTitle ("Vprašanje uporabniku")
# Prikažite polje za sporočila
sebe.msgQuestion.pokaži ()
# Določite funkcijo gumbov
def msgButton (self, i):
če jaz.text () == '& Da':
print ("Naloga se nadaljuje ...")
sicer:
print ("Nalogo ste preklicali.")
# Ustvarite objekt aplikacije in zaženite aplikacijo
app = QApplication (sys.argv)
Win = MessageWindow ()
app.exec_ ()
Po izvedbi zgornjega skripta se prikaže naslednje okno s sporočilom.
Če uporabnik klikne Enter tipko, ne da bi izbrali kateri koli gumb, nato tipko Ne gumb bo privzeto aktiviran in prikazal se bo naslednji izhod:
Zaključek
V tej vadnici so bile z razredom QMessageBox ustvarjene tri različne vrste sporočil. Upajmo, da vam je ta vadnica pomagala bolje razumeti uporabo tega predavanja. Zdaj bi morali ustvariti sporočilo za aplikacijo PyQt.