52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
import sys
|
|
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem, QPushButton, QLabel, QHBoxLayout, QVBoxLayout
|
|
|
|
class ListItemWidget(QWidget):
|
|
def __init__(self, text, index, btn1f, btn2f):
|
|
super().__init__()
|
|
self.text = text
|
|
self.index = index # damit wir wissen, zu welchem Eintrag der Button gehört
|
|
|
|
layout = QHBoxLayout(self)
|
|
|
|
# Label für den Text
|
|
label = QLabel(text)
|
|
layout.addWidget(label)
|
|
|
|
# Zwei Buttons rechts
|
|
btn1 = QPushButton("Start")
|
|
btn2 = QPushButton("Stop")
|
|
|
|
# Funktionen verbinden
|
|
btn1.clicked.connect(btn1f)
|
|
btn2.clicked.connect(btn2f)
|
|
|
|
layout.addWidget(btn1)
|
|
layout.addWidget(btn2)
|
|
layout.setContentsMargins(5, 2, 5, 2)
|
|
layout.addStretch()
|
|
|
|
class MainWindow(QWidget):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.setWindowTitle("Liste mit 2 Köpfen")
|
|
self.resize(300, 200)
|
|
|
|
main_layout = QVBoxLayout(self)
|
|
|
|
# QListWidget
|
|
self.list_widget = QListWidget()
|
|
main_layout.addWidget(self.list_widget)
|
|
|
|
def add_list_item(self, text, index ,btn1f, btn2f):
|
|
item = QListWidgetItem(self.list_widget)
|
|
widget = ListItemWidget(text)
|
|
item.setSizeHint(widget.sizeHint())
|
|
self.list_widget.addItem(item)
|
|
self.list_widget.setItemWidget(item, widget)
|
|
|
|
def startGUI():
|
|
app = QApplication(sys.argv)
|
|
window = MainWindow()
|
|
window.show()
|
|
sys.exit(app.exec_()) |