Szükséges módszerek
A QMessageBox osztálynak számos módszere van a különféle típusú üzenetdobozok létrehozására. A QMessageBox osztály néhány leggyakrabban használt módszerét az alábbiakban ismertetjük:
Módszer nevei | Célja |
---|---|
setTitle () | Az egyéni cím megjelenítésére szolgál. |
setText () | A fő üzenet szövegének beállítására szolgál. |
setDetailText () | A részletek gombbal rendelkező ablak megjelenítésére szolgál; az üzenet szövege megjelenik, miután a felhasználó rákattint a gombra. |
setInformativeText | A kiegészítő üzenet megjelenítésére szolgál. |
setIcon () | Ikon beállítása az üzenet mezőbe az üzenet típusa alapján. |
setWindowTitle () | Az üzenetablak címének beállítására szolgál. |
setDefaultButton () | Alapértelmezettként az üzenetmező gombjának beállítására szolgál; a gomb kiad egy kattintott jelet, amikor a Belép gombot megnyomják. |
setEscapeButton () | Bármelyik gomb menekülési kulcsként történő használatára szolgál; a gomb kiad egy kattintott jelet, amikor a Menekülni gombot megnyomják. |
setStandardButtons () | Különböző szabványos gombok használhatók az üzenetmezőben az üzenet típusától függően, például OK, Igen, Nem, Mégse, Bezárás stb. |
QMessageBox használata
Az oktatóanyag következő szakaszai olyan példákat tartalmaznak, amelyek bemutatják, hogyan hozhat létre különféle üzenetdobozokat a QMessageBox osztály használatával.
1. példa: Információs üzenetdoboz létrehozása
Az alábbi parancsfájl egyszerű információs üzenetdobozt hoz létre a QMessageBox osztály használatával. Ez a fajta üzenetdoboz csak a felhasználó számára nyújt tájékoztató üzenetet. rendben az alapértelmezett gomb az üzenetmezőben. Itt, QMessageBox.Információ a setIcon () módszer az információs ikon megjelenítésére az üzenetmezőben.
# Importálja a szükséges modulokatimport sys
a PyQt5-ből.A QtWidgets importálja a QApplication, QMainWindow, QMessageBox fájlokat
# Adja meg az osztályt az információs üzenet megjelenítéséhez
class MessageWindow (QMainWindow):
def __init __ (én):
# Hívja a szülő konstruktort
szuper().__benne__()
# Hozzon létre egy üzenetbox objektumot
maga.msg = QMessageBox ()
# Állítsa be az információs ikont
maga.üzenet.setIcon (QMessageBox.Információ)
# Állítsa be a fő üzenetet
maga.üzenet.setText ("A feladat sikeresen befejeződött.")
# Állítsa be az ablak címét
maga.üzenet.setWindowTitle ("Információs üzenet")
# Jelenítse meg az üzenet mezőt
maga.üzenet.előadás()
# Hozzon létre alkalmazásobjektumot, és futtassa az alkalmazást
app = QApplication (sys.argv)
Win = MessageWindow ()
kb.exec ()
A fenti üzenetmező a fenti parancsfájl végrehajtása után jelenik meg.
2. példa: Hozzon létre egy figyelmeztető üzenetdobozt
Az alábbi parancsfájl létrehozza a figyelmeztető üzenet mezőt a QMessageBox osztály használatával. Ez a fajta üzenetmező biztosítja a figyelmeztető üzenetet a felhasználó számára. A Figyelem a setIcon () módszer a figyelmeztető ikon megjelenítésére az üzenetmezőben. A rendben és Megszünteti gombok hozzáadódnak az üzenetmezőhöz a setStandardButtons () módszer. Egy úgynevezett egyéni módszer msgButton () osztályban van megadva, hogy nyomon kövesse az üzenetmező gombját, amelyre a felhasználó kattintott. Ha a felhasználó rákattint a rendben gombot, majd a szöveget 'Az OK gombot megnyomják,'kinyomtatja; különben aMegnyomja a Mégse gombot'szöveg kinyomtatásra kerül.
# Importálja a szükséges modulokatimport sys
a PyQt5-ből.A QtWidgets importálja a QApplication, QMainWindow, QMessageBox fájlokat
# Adja meg az osztályt az információs üzenet megjelenítéséhez
class MessageWindow (QMainWindow):
def __init __ (én):
# Hívja a szülő konstruktort
szuper().__benne__()
# Hozzon létre egy üzenetbox objektumot
maga.msgWarning = QMessageBox ()
# Állítsa be a Figyelmeztetés ikont
maga.msgWarning.setIcon (QMessageBox.Figyelem)
# Állítsa be a fő üzenetet
maga.msgWarning.setText ("Név változó nincs meghatározva.")
# Állítson be két gombot az üzenetmezőhöz
maga.msgWarning.setStandardButtons (QMessageBox.Ok | QMessageBox.Megszünteti)
# Hívja meg az egyedi módszert a gombra kattintva
maga.msgWarning.gombra kattintva.összekapcsolni (én.msgButton)
# Állítsa be az ablak címét
maga.msgWarning.setWindowTitle ("Figyelmeztető üzenet")
# Jelenítse meg az üzenet mezőt
maga.msgWarning.előadás()
# Definiálja a gombok funkcióját
def msgButton (én, i):
ha én.szöveg () == '& OK':
print ("az OK gombot megnyomja.")
más:
print ("a Mégse gomb megnyomva.")
# Hozzon létre alkalmazásobjektumot, és futtassa az alkalmazást
app = QApplication (sys.argv)
Win = MessageWindow ()
kb.exec_ ()
A fenti üzenetmező a fenti parancsfájl végrehajtása után jelenik meg.
Ha a felhasználó rákattint a rendben gombra, a következő kimenet jelenik meg.
3. példa: Hozzon létre a Kérdés Figyelem Üzenet
Az alábbi szkript a QMessageBox osztály használatával hozza létre a kérdéses üzenetmezőt. Ez a típusú üzenetmező biztosítja a kérdéses üzenetet a felhasználó számára, hogy a felhasználó döntése alapján hajtsa végre az adott műveletet. Itt, QMessageBox.Kérdés a setIcon () módszer a kérdés ikon megjelenítésére az üzenetmezőben. A Igen és Nem gombok hozzáadódnak az üzenetmezőhöz a setStandardButtons () módszer. A Nem gomb a setDefaultButton () metódussal alapértelmezett gombra van állítva. Egy úgynevezett egyéni módszer msgButton () osztályban van megadva, hogy nyomon kövesse az üzenetmező gombját, amelyre a felhasználó kattintott.
# Importálja a szükséges modulokatimport sys
a PyQt5-ből.A QtWidgets importálja a QApplication, QMainWindow, QMessageBox fájlokat
# Adja meg az osztályt az információs üzenet megjelenítéséhez
class MessageWindow (QMainWindow):
def __init __ (én):
# Hívja a szülő konstruktort
szuper().__benne__()
# Hozzon létre egy üzenetbox objektumot
maga.msgQuestion = QMessageBox ()
# Állítsa be a Figyelmeztetés ikont
maga.msgQuestion.setIcon (QMessageBox.Kérdés)
# Állítsa be a fő üzenetet
maga.msgQuestion.setText ("Folytatja?")
# Állítson be két gombot az üzenetmezőhöz
maga.msgQuestion.setStandardButtons (QMessageBox.Igen | QMessageBox.Nem)
maga.msgQuestion.setDefaultButton (QMessageBox.Nem)
# Hívja meg az egyéni módszert a gombra kattintva
maga.msgQuestion.gombra kattintva.összekapcsolni (én.msgButton)
# Állítsa be az ablak címét
maga.msgQuestion.setWindowTitle ("Kérdés feltevése a felhasználónak")
# Jelenítse meg az üzenet mezőt
maga.msgQuestion.előadás()
# Definiálja a gombok funkcióját
def msgButton (én, i):
ha én.szöveg () == '& Igen':
nyomtatás ("A feladat folytatódik ...")
más:
print ("Ön törölte a feladatot.")
# Hozzon létre alkalmazásobjektumot, és futtassa az alkalmazást
app = QApplication (sys.argv)
Win = MessageWindow ()
kb.exec_ ()
A fenti üzenetmező a fenti parancsfájl végrehajtása után jelenik meg.
Ha a felhasználó rákattint a Belép gombot gombok kijelölése nélkül, majd a Nem gomb alapértelmezés szerint aktiválódik, és a következő kimenet jelenik meg:
Következtetés
Ebben az oktatóanyagban három különböző típusú üzenetdobozt hoztak létre a QMessageBox osztály használatával. Remélhetőleg ez a bemutató segített jobban megérteni az osztály használatát. Most már képesnek kell lennie létrehozni egy üzenetdobozt a PyQt alkalmazás számára.