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_())