Vajalikud meetodid
Klassil QMessageBox on mitut tüüpi teadetekastide loomiseks palju meetodeid. Mõnda QMessageBox-klassi sagedamini kasutatavat meetodit kirjeldatakse allpool:
Meetodi nimed | Eesmärk |
---|---|
setTitle () | Kasutatakse kohandatud pealkirja kuvamiseks. |
setText () | Kasutatakse põhisõnumi teksti määramiseks. |
setDetailText () | Kasutatakse üksikasjade nupuga akna kuvamiseks; sõnumi tekst ilmub pärast seda, kui kasutaja nupule klõpsab. |
setInformativeText | Kasutatakse täiendava teate kuvamiseks. |
setIcon () | Kasutatakse sõnumi tüübi põhjal sõnumikasti ikooni määramiseks. |
setWindowTitle () | Kasutatakse sõnumi akna pealkirja määramiseks. |
setDefaultButton () | Kasutatakse sõnumikasti vaikenupu määramiseks; nupp vabastab klõpsatud signaali, kui Sisenema vajutatakse. |
setEscapeButton () | Kasutatakse suvalise nupu seadmiseks töötama pääsuklahvina; nupp vabastab klõpsatud signaali, kui Põgeneda vajutatakse. |
setStandardButtons () | Sõnumiliigi põhjal saab sõnumikastis kasutada erinevaid standardnuppe, näiteks OK, Jah, Ei, Tühista, Sule jne. |
QMessageBoxi kasutamine
Selle juhendaja järgmistes jaotistes on näited, mis näitavad, kuidas luua QMessageBox klassi abil erinevaid sõnumikaste.
Näide 1: Looge teavituskast
Järgmine skript loob klassi QMessageBox abil lihtsa teabeteabe. Seda tüüpi sõnumikast pakub teabesõnumit ainult kasutajale. Okei on sõnumikasti vaikenupp. Siin, QMessageBox.Teave kasutatakse setIcon () meetod teabe kuvamise ikooni kuvamiseks sõnumikastis.
# Impordi vajalikud moodulidimpordi süsteem
alates PyQt5.QtWidgetid impordivad QApplicationi, QMainWindowi, QMessageBoxi
# Määratlege klass teabesõnumi kuvamiseks
klassi MessageWindow (QMainWindow):
def __init __ (ise):
# Helistage vanemkonstruktorile
Super().__selles__()
# Loo sõnumikasti objekt
ise.msg = QMessageBox ()
# Määrake teabeikoon
ise.sõnum.setIcon (QMessageBox.Teave)
# Määrake põhisõnum
ise.sõnum.setText ("Ülesanne on edukalt lõpule viidud.")
# Määrake akna pealkiri
ise.sõnum.setWindowTitle ("Teabesõnum")
# Kuva sõnumikast
ise.sõnum.näita ()
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
Win = MessageWindow ()
rakendus.exec ()
Pärast ülaltoodud skripti käivitamist kuvatakse järgmine teatekast.
Näide 2: Looge hoiatusteate kast
Järgmine skript loob klassi QMessageBox abil hoiatusteate. Seda tüüpi sõnumikast pakub kasutajale hoiatussõnumit. The hoiatus kasutatakse setIcon () meetod hoiatusikooni kuvamiseks sõnumikastis. The Okei ja Tühista nupud lisatakse sõnumikasti nupu abil setStandardButtons () meetod. Kohandatud meetod, mida nimetatakse msgButton () on klassis määratletud, et jälgida nuppu sõnumikastis, millele kasutaja on klõpsanud. Kui kasutaja klõpsab nuppu Okei nupp, seejärel tekst "Vajutatakse nuppu OK,'prindib; muul juhulVajutatakse nuppu Tühista'tekst prinditakse.
# Impordi vajalikud moodulidimpordi süsteem
alates PyQt5.QtWidgetid impordivad QApplicationi, QMainWindowi, QMessageBoxi
# Määratlege klass teabesõnumi kuvamiseks
klassi MessageWindow (QMainWindow):
def __init __ (ise):
# Helistage vanemkonstruktorile
Super().__selles__()
# Loo sõnumikasti objekt
ise.msgWarning = QMessageBox ()
# Määrake hoiatuse ikoon
ise.msgWarning.setIcon (QMessageBox.Hoiatus)
# Määrake põhisõnum
ise.msgWarning.setText ("Nimi muutuja on määratlemata.")
# Määrake sõnumikasti jaoks kaks nuppu
ise.msgWarning.setStandardButtons (QMessageBox.Ok | QMessageBox.Tühista)
# Helistage klõpsatud nupul kohandatud meetodile
ise.msgWarning.nuppKlikitud.ühendama (ise.msgButton)
# Määrake akna pealkiri
ise.msgWarning.setWindowTitle ("Hoiatusteade")
# Kuva sõnumikast
ise.msgWarning.näita ()
# Määrake nuppude funktsioon
def msgButton (ise, i):
kui ma.tekst () == '& OK':
print ("nuppu OK vajutatakse.")
muu:
print ("nuppu Tühista vajutatakse.")
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
Win = MessageWindow ()
rakendus.exec_ ()
Pärast ülaltoodud skripti käivitamist kuvatakse järgmine teatekast.
Kui kasutaja klõpsab nuppu Okei nuppu, kuvatakse järgmine väljund.
Näide 3: a Küsimus Hoiatus Sõnum
Järgmine skript loob küsimussõnumikasti QMessageBoxi klassi abil. Seda tüüpi sõnumikast pakub kasutajale küsimussõnumit konkreetse toimingu tegemiseks vastavalt kasutaja otsusele. Siin, QMessageBox.Küsimus kasutatakse setIcon () meetod küsimuse ikooni kuvamiseks sõnumikastis. The Jah ja Ei nupud lisatakse sõnumikasti nupu abil setStandardButtons () meetod. The Ei nupp seatakse vaikenupuks, kasutades meetodit setDefaultButton (). Kohandatud meetod, mida nimetatakse msgButton () on klassis määratletud, et jälgida nuppu sõnumikastis, millele kasutaja on klõpsanud.
# Impordi vajalikud moodulidimpordi süsteem
alates PyQt5.QtWidgetid impordivad QApplicationi, QMainWindowi, QMessageBoxi
# Määratlege klass teabesõnumi kuvamiseks
klassi MessageWindow (QMainWindow):
def __init __ (ise):
# Helistage vanemkonstruktorile
Super().__selles__()
# Loo sõnumikasti objekt
ise.msgQuestion = QMessageBox ()
# Määrake hoiatuse ikoon
ise.msgQuestion.setIcon (QMessageBox.Küsimus)
# Määrake põhisõnum
ise.msgQuestion.setText ("Kas soovite jätkata?")
# Määrake sõnumikasti jaoks kaks nuppu
ise.msgQuestion.setStandardButtons (QMessageBox.Jah | QMessageBox.Ei)
ise.msgQuestion.setDefaultButton (QMessageBox.Ei)
# Helistage klõpsatud nupul kohandatud meetodile
ise.msgQuestion.nuppKlikitud.ühendama (ise.msgButton)
# Määrake akna pealkiri
ise.msgQuestion.setWindowTitle ("Kasutajale küsimuse esitamine")
# Kuva sõnumikast
ise.msgQuestion.näita ()
# Määrake nuppude funktsioon
def msgButton (ise, i):
kui ma.tekst () == '& Jah':
print ("Ülesanne jätkub ...")
muu:
print ("Olete ülesande tühistanud.")
# Loo rakenduse objekt ja käivitage rakendus
app = QApplication (sys.argv)
Win = MessageWindow ()
rakendus.exec_ ()
Pärast ülaltoodud skripti käivitamist kuvatakse järgmine teatekast.
Kui kasutaja klõpsab nuppu Sisenema klahvi valimata, siis Ei nupp aktiveeritakse vaikimisi ja kuvatakse järgmine väljund:
Järeldus
Selles õpetuses loodi klassi QMessageBox abil kolm erinevat tüüpi sõnumikaste. Loodetavasti aitas see õpetus teil selle klassi kasutamist paremini mõista. Nüüd peaksite saama PyQt-rakenduse jaoks sõnumikasti luua.