Noodzakelijke methoden
De klasse QMessageBox heeft veel methoden voor het maken van verschillende soorten berichtvensters. Enkele van de meest gebruikte methoden van de QMessageBox-klasse worden hieronder beschreven:
Methode Namen | Doel |
---|---|
setTitle() | Wordt gebruikt om de aangepaste titel weer te geven. |
setText() | Wordt gebruikt om de tekst van het hoofdbericht in te stellen. |
setDetailText() | Wordt gebruikt om een venster weer te geven met een detailknop; de berichttekst verschijnt nadat de gebruiker op de knop heeft geklikt. |
setInformatieveTekst | Wordt gebruikt om het extra bericht weer te geven. |
setIcon() | Wordt gebruikt om een pictogram in het berichtvenster in te stellen op basis van het berichttype. |
setWindowTitle() | Wordt gebruikt om de titel van het berichtvenster in te stellen. |
setDefaultButton() | Wordt gebruikt om de knop in het berichtvak standaard in te stellen; de knop geeft een geklikt signaal af wanneer de Enter toets is ingedrukt. |
setEscapeButton() | Wordt gebruikt om elke knop in te stellen als een escape-toets; de knop geeft een geklikt signaal af wanneer de Ontsnappen toets is ingedrukt. |
setStandardButtons() | Er kunnen verschillende standaardknoppen in de berichtenbox worden gebruikt op basis van het berichttype, zoals OK, Ja, Nee, Annuleren, Sluiten, enz. |
QMessageBox-gebruik
De volgende secties van deze zelfstudie bevatten voorbeelden die u laten zien hoe u verschillende berichtvensters kunt maken met behulp van de QMessageBox-klasse.
Voorbeeld 1: Maak een informatieve berichtenbox
Het volgende script maakt een eenvoudig informatief berichtvenster aan met de klasse QMessageBoxage. Dit type berichtvenster biedt alleen het informatieve bericht voor de gebruiker. OK is de standaardknop in het berichtvenster. Hier, QMessageBox.Informatie wordt gebruikt in de setIcon() methode om het informatiepictogram in het berichtvenster weer te geven.
# Importeer benodigde modulesimport systeem
van PyQt5.QtWidgets importeert QApplication, QMainWindow, QMessageBox
# Definieer klasse tot om een informatief bericht weer te geven
klasse MessageWindow(QMainWindow):
def __init__(zelf):
# Bel de bovenliggende constructor
super().__in het__()
# Maak het messagebox-object
zelf.msg = QMessageBox()
# Stel het informatiepictogram in
zelf.bericht.setIcon (QMessageBox).Informatie)
# Stel het hoofdbericht in
zelf.bericht.setText("De taak is succesvol voltooid.")
# Stel de titel van het venster in
zelf.bericht.setWindowTitle("Informatiebericht")
# Geef het berichtvenster weer
zelf.bericht.tonen()
# Maak een app-object en voer de app uit
app = QApplicatie(sys.argv)
Win = Berichtvenster()
app.exec()
Het volgende berichtvenster verschijnt nadat het bovenstaande script is uitgevoerd:.
Voorbeeld 2: Maak een waarschuwingsberichtvenster
Het volgende script maakt het waarschuwingsberichtvenster aan met behulp van de QMessageBox-klasse. Dit type berichtenvenster biedt het waarschuwingsbericht voor de gebruiker. De waarschuwing wordt gebruikt in de setIcon() methode om het waarschuwingspictogram in het berichtvenster weer te geven. De OK en annuleren knoppen worden toegevoegd aan het berichtvenster met behulp van de setStandardButtons() methode. Een aangepaste methode genaamd msgButton() is gedefinieerd in de klasse om de knop in het berichtvenster te traceren waarop door de gebruiker is geklikt. Als de gebruiker op de . klikt OK knop, dan de tekst, 'OK-knop is ingedrukt,' zal afdrukken; anders de 'Annuleerknop is ingedrukt' tekst wordt afgedrukt.
# Importeer benodigde modulesimport systeem
van PyQt5.QtWidgets importeert QApplication, QMainWindow, QMessageBox
# Definieer klasse tot om een informatief bericht weer te geven
klasse MessageWindow(QMainWindow):
def __init__(zelf):
# Bel de bovenliggende constructor
super().__in het__()
# Maak het messagebox-object
zelf.msgWarning = QMessageBox()
# Stel het waarschuwingspictogram in
zelf.berichtWaarschuwing.setIcon (QMessageBox).Waarschuwing)
# Stel het hoofdbericht in
zelf.berichtWaarschuwing.setText("Naam variabele is niet gedefinieerd.")
# Stel twee knoppen in voor het berichtenvenster
zelf.berichtWaarschuwing.setStandardButtons (QMessageBox).Oké | QMessageBox.Annuleren)
# Roep de aangepaste methode aan op de knop waarop is geklikt
zelf.berichtWaarschuwing.knopGeklikt.verbinden (zelf).berichtKnop)
# Stel de titel van het venster in
zelf.berichtWaarschuwing.setWindowTitle("Waarschuwing")
# Geef het berichtvenster weer
zelf.berichtWaarschuwing.tonen()
# Definieer functie voor de knoppen
def msgButton(zelf, ik):
als ik.text() == '&OK' :
print ("OK-knop is ingedrukt".")
anders:
print("Annuleren knop is ingedrukt.")
# Maak een app-object en voer de app uit
app = QApplicatie(sys.argv)
Win = Berichtvenster()
app.exec_()
Het volgende berichtvenster verschijnt nadat het bovenstaande script is uitgevoerd:.
Als de gebruiker op de . klikt OK knop, zal de volgende output verschijnen:.
Voorbeeld 3: Maak een Vraag Waarschuwing Bericht
Het volgende script maakt het vraagberichtvenster aan met behulp van de QMessageBox-klasse. Dit type berichtvenster geeft de gebruiker het vraagbericht om de specifieke actie te ondernemen op basis van de beslissing van de gebruiker. Hier, QMessageBox.Vraag wordt gebruikt in de setIcon() methode om het vraagpictogram in het berichtvenster weer te geven. De Ja en Nee knoppen worden toegevoegd aan het berichtvenster met behulp van de setStandardButtons() methode. De Nee knop is ingesteld als de standaardknop met behulp van de methode setDefaultButton(). Een aangepaste methode genaamd msgButton() is gedefinieerd in de klasse om de knop in het berichtvenster te traceren waarop door de gebruiker is geklikt.
# Importeer benodigde modulesimport systeem
van PyQt5.QtWidgets importeert QApplication, QMainWindow, QMessageBox
# Definieer klasse tot om een informatief bericht weer te geven
klasse MessageWindow(QMainWindow):
def __init__(zelf):
# Bel de bovenliggende constructor
super().__in het__()
# Maak het messagebox-object
zelf.msgQuestion = QMessageBox()
# Stel het waarschuwingspictogram in
zelf.msgVraag.setIcon(QMessageBox).Vraag)
# Stel het hoofdbericht in
zelf.msgVraag.setText("Wilt u doorgaan?")
# Stel twee knoppen in voor het berichtenvenster
zelf.msgVraag.setStandardButtons (QMessageBox).Ja | QMessageBox.Nee)
zelf.msgVraag.setDefaultButton(QMessageBox).Nee)
# Roep de aangepaste methode aan op de knop waarop is geklikt
zelf.msgVraag.knopGeklikt.verbinden (zelf).berichtKnop)
# Stel de titel van het venster in
zelf.msgVraag.setWindowTitle("Vraag stellen aan gebruiker")
# Geef het berichtvenster weer
zelf.msgVraag.tonen()
# Definieer functie voor de knoppen
def msgButton(zelf, ik):
als ik.text() == '&Ja' :
print("De taak gaat door... ")
anders:
print("Je hebt de taak geannuleerd.")
# Maak een app-object en voer de app uit
app = QApplicatie(sys.argv)
Win = Berichtvenster()
app.exec_()
Het volgende berichtvenster verschijnt nadat het bovenstaande script is uitgevoerd:.
Als de gebruiker op de . klikt Enter toets zonder een knop te selecteren, dan de Nee knop wordt standaard geactiveerd en de volgende uitvoer verschijnt:
Conclusie
In deze zelfstudie zijn drie verschillende typen berichtvensters gemaakt met behulp van de klasse QMessageBox. Hopelijk heeft deze tutorial je geholpen om het gebruik van deze klasse beter te begrijpen. U zou nu een berichtvenster voor de PyQt-toepassing moeten kunnen maken.