Kapitel 28
Benutzungsoberflächen mit Qt
780
entweder "Groß" oder "Klein". In der Variablen price wird der Preis der Pizza gespei-
chert. Wenn die Beschriftung
"Groß" ist, wird die Variable price auf den Anfangswert 3.0
gesetzt und sonst auf 2 .0.
#9: Je nachdem, welche Checkbuttons selektiert worden sind, werden nun weitere Beträge
aufaddiert.
#10: Der Preis der Pizza – eine Zahl vom Typ float – ersetzt den Platzhalter %.2f im For-
matstring
ORDER. Die Zahl wird mit zwei Stellen nach dem Punkt dargestellt.
28.9 Auswahlliste (ComboBox)
Wenn eine Option einer Auswahlliste angeklickt worden ist, wird ein Signal gesendet, das
auch den Text der gewählten Option enthält. Dieser Text kann zum Beispiel als Schlüssel
zum Zugriff auf ein Dictionary genutzt werden. Die folgende Applikation ist ein Editor für
Präventionsmaßnahmen im Umgang mit gefährlichen Stoffen. Zur Beschreibung der
Sicherheitsvorkehrungen haben die Vereinten Nationen so genannte P-Sätze herausgege-
ben, die mit weltweit einheitlichen Kürzeln gekennzeichnet sind.
Aus einer Auswahlliste kann man ein Kürzel auswählen. Im Texteditorfeld wird dann ein
Textbaustein eingefügt.
Abb. 28.8: Ein Editor mit Auswahlliste (Combobox) für Textbausteine
Skript:
# prevention_editor.py
import sys
from PyQt5.QtWidgets import *
P = {"P201": "Vor Gebrauch besondere ...",
"P202": "Vor Gebrauch alle ...",
781
28.9
Auswahlliste (ComboBox)
Erläuterung:
#1: In diesem Dictionary werden die zugehörigen P-Sätze Kürzeln zugeordnet. Die Kürzel
erscheinen in der Auswahlliste, und die P-Sätze werden in das Texteditorfeld eingetragen.
#2: Ein leeres Texteditorfeld wird erzeugt.
#3: Hier wird in das Texteditorfeld eine Überschrift eingefügt, die durch HTML-Tags <h1>
...
</h1> ausgezeichnet wurde. Das QTextEdit-Widget kann viele HTML-Tags interpretie-
ren. Sie können z.B. auch Tabellen darstellen.
#4: Eine leere Auswahlliste (Combobox) wird erzeugt.
#5: Der Auswahlliste werden Items hinzugefügt. Es sind Strings mit den Kürzeln von Prä-
ventionsmaßnahmen. Sie können als Schlüssel für den Zugriff auf das Dictionary
P verwen-
det werden.
"P210": "Von Hitze, heißen Oberflächen,..."} #1
class Editor(QWidget):
def __init__(self):
super().__init__()
# Widgets
self.text = QTextEdit() #2
self.text.setText("<h1>Prävention</h1") #3
self.combo = QComboBox() #4
self.combo.addItem("P201") #5
self.combo.addItem("P202")
self.combo.addItem("P210")
# Layout
vBox = QVBoxLayout()
self.setLayout(vBox)
vBox.addWidget(self.text)
vBox.addWidget(self.combo)
self.show()
#6
self.combo.activated[str].connect(self.addText)
def addText (self, item): #7
self.text.append(P[item])
app = QApplication(sys.argv)
editor = Editor()
sys.exit(app.exec_())

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.