Python

Kako uporabljati PyQt QMessageBox

Kako uporabljati PyQt QMessageBox
Sporočilo za sporočila se v aplikaciji GUI uporablja za zagotavljanje potrebnih informacij za uporabnika ali za pozivanje uporabnika k ukrepanju na podlagi sporočila. Za katero koli aplikacijo grafičnega uporabniškega vmesnika je mogoče ustvariti štiri vrste sporočil, vključno z informacijskim, opozorilnim, kritičnim in vprašalnim. The QMessageBox razred PyQt se v Pythonu uporablja za ustvarjanje sporočilnega polja. Ta vadnica vam prikazuje, kako z razredom QMessageBox ustvariti različna okna za sporočila.

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 module
uvoz 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 module
uvoz 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 module
uvoz 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.

Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...