Piton

A PyQt QMessageBox használata

A PyQt QMessageBox használata
Az üzenetdobozt a GUI alkalmazásban használják a szükséges információk megadásához a felhasználó számára, vagy arra kérik a felhasználót, hogy tegyen lépéseket az üzenet alapján. Négyféle üzenetdoboz hozható létre bármely GUI alkalmazáshoz, beleértve az információs üzenetet, a figyelmeztető üzenetet, a kritikus üzenetet és a kérdéses üzenetet. A QMessageBox a PyQt osztálya a Python-ban használatos egy üzenetdoboz létrehozásához. Ez az oktatóanyag bemutatja, hogyan használhatja a QMessageBox osztályt különféle üzenetdobozok létrehozásához.

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 modulokat
import 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 modulokat
import 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 modulokat
import 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.

Hogyan lehet rögzíteni és streamelni a játékmenetét Linuxon
Korábban a játékokat csak hobbinak tekintették, de az idő múlásával a játékipar hatalmas növekedést ért el a technológia és a játékosok száma szempont...
A legjobb játékok kézi követéssel
Az Oculus Quest nemrégiben bemutatta a vezérlés nélküli kézi követés nagyszerű ötletét. Az egyre növekvő számú játékkal és tevékenységgel, amelyek tám...
Az OSD-fedvény megjelenítése teljes képernyős Linux-alkalmazásokban és játékokban
Teljes képernyős játékok lejátszása vagy alkalmazások figyelemelterelés nélküli, teljes képernyős módban történő használata elvághatja a panelen vagy ...