Python PyQt Gängige Widgets
PyQt ist ein GUI-Programmier-Toolkit für die Python-Sprache und die Python-Bindung für das Qt-Anwendungsframework.
Qt ist ein plattformübergreifendes C++-Framework zur Entwicklung von GUI-Anwendungen, das häufig zur Entwicklung von GUI-Programmen verwendet wird.
PyQt bietet einen reichhaltigen Satz von Widgets zum Erstellen von Benutzeroberflächen; diese Widgets sind die grundlegenden Bausteine für die Konstruktion von GUI-Anwendungen.
Grundlegende Fenster-Widgets
QMainWindow
QMainWindow ist die Hauptfensterklasse und bietet ein standardmäßiges Anwendungsframework:
Beispiel
app = QApplication([])
window = QMainWindow()
window.setWindowTitle('Hauptfenster-Beispiel')
window.setGeometry(100, 100, 800, 600) # x, y, Breite, Höhe
window.show()
app.exec_()
QWidget
QWidget ist die Basisklasse für alle Objekte der Benutzeroberfläche:
Beispiel
widget = QWidget()
widget.setWindowTitle('Einfaches Fenster')
widget.show()
Häufige Eingabe-Widgets
QLabel
Text oder Bilder anzeigen:
Beispiel
label = QLabel('Dies ist ein Label')
label.setStyleSheet('font-size: 16px; color: blue;')
QLineEdit
Einzeiliges Texteingabefeld:
Beispiel
line_edit = QLineEdit()
line_edit.setPlaceholderText('Bitte Inhalt eingeben...')
QTextEdit
Mehrzeiliger Texteditor:
Beispiel
text_edit = QTextEdit()
text_edit.setPlainText('Mehrzeiliger Texteditor')
QComboBox
Dropdown-Auswahlfeld:
Beispiel
combo = QComboBox()
combo.addItems(['Option 1', 'Option 2', 'Option 3'])
Button-Widgets
QPushButton
Normaler Button:
Beispiel
button = QPushButton('Click me')
button.setStyleSheet('background-color: green; color: white;')
QRadioButton
Radiobutton:
Beispiel
radio1 = QRadioButton('Option 1')
radio2 = QRadioButton('Option 2')
QCheckBox
Kontrollkästchen:
Beispiel
check1 = QCheckBox('Choice 1')
check2 = QCheckBox('Choice 2')
Layout-Widgets
QHBoxLayout
Horizontales Layout:
Beispiel
h_layout = QHBoxLayout()
h_layout.addWidget(QPushButton('Links'))
h_layout.addWidget(QPushButton('Mitte'))
h_layout.addWidget(QPushButton('Rechts'))
QVBoxLayout
Vertikales Layout:
Beispiel
v_layout = QVBoxLayout()
v_layout.addWidget(QPushButton('Oben'))
v_layout.addWidget(QPushButton('Mitte'))
v_layout.addWidget(QPushButton('Unten'))
QGridLayout
Gitter-Layout:
Beispiel
grid = QGridLayout()
grid.addWidget(QPushButton('(0,0)'), 0, 0)
grid.addWidget(QPushButton('(0,1)'), 0, 1)
grid.addWidget(QPushButton('(1,0)'), 1, 0)
Erweiterte Widgets
QTableWidget
Tabellen-Widget:
Beispiel
table = QTableWidget(3, 3) # 3 Zeilen, 3 Spalten
table.setHorizontalHeaderLabels(['Spalte 1', 'Spalte 2', 'Spalte 3'])
table.setItem(0, 0, QTableWidgetItem('Daten 1'))
QTreeWidget
Baum-Widget:
Beispiel
tree = QTreeWidget()
tree.setHeaderLabels(['Name', 'Wert'])
root = QTreeWidgetItem(tree, ['Wurzelknoten'])
child = QTreeWidgetItem(root, ['Unterknoten', '123'])
QTabWidget
Tab-Widget:
Beispiel
tab = QTabWidget()
tab.addTab(QWidget(), 'Tab 1')
tab.addTab(QWidget(), 'Tab 2')
Dialog-Widgets
QMessageBox
Nachrichtendialog:
Beispiel
msg = QMessageBox()
msg.setWindowTitle('Aufforderung')
msg.setText('Dies ist ein Nachrichtendialog')
msg.setIcon(QMessageBox.Information)
msg.exec_()
QFileDialog
Dateidialog:
Beispiel
file_name = QFileDialog.getOpenFileName(None, 'Datei auswählen', '', 'Textdateien (*.txt);;Alle Dateien (*)')
Stileinstellungen
PyQt unterstützt die Verwendung von CSS-Stilen, um Widgets zu verschönern:
Beispiel
button.setStyleSheet('''
QPushButton {
background-color: #4C7EAF;
border: none;
color: white;
padding: 10px 24px;
text-align: center;
font-size: 16px;
margin: 4px 2px;
border-radius: 8px;
}
QPushButton:hover {
background-color: #4777A6;
}
''')