Python

Hoe PyQt QMessageBox te gebruiken

Hoe PyQt QMessageBox te gebruiken
Het berichtenvenster wordt in de GUI-toepassing gebruikt om de gebruiker de nodige informatie te verstrekken of om de gebruiker te vragen acties te ondernemen op basis van het bericht. Er kunnen vier soorten berichtvensters worden gemaakt voor elke GUI-toepassing, waaronder het informatieve berichtvenster, het waarschuwingsberichtvenster, het kritieke berichtvenster en het vraagberichtenvenster. De QMessageBox klasse van PyQt wordt in Python gebruikt om een ​​berichtvenster te maken. Deze tutorial laat je zien hoe je de QMessageBox-klasse gebruikt om verschillende berichtvensters te maken.

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

Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...