如何在QTableWidget Pyqt6中使用复选框创建信号



我从python v3.10开始,实际上我使用PyQt6来设计窗口。

我创建了一个QTableWidget,在其中我放置了一个带有图片的复选框。

现在我想创建一个信号,当我点击它时执行一个功能

我尝试过,连接,stateChanged。。。但什么都不管用。

我在代码下面写了一张图片:

while self.query.next():
# widget checkbox
checkbox_widget = QWidget()
checkbox_widget.setStyleSheet('background-color: transparent;')
w_checkbox = QtWidgets.QCheckBox
layout_cb = QtWidgets.QHBoxLayout(checkbox_widget)
layout_cb.addWidget(w_checkbox())
layout_cb.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout_cb.setContentsMargins(0, 0, 0, 0)
checkbox_widget.setLayout(layout_cb)
tablerow = self.table_EP.rowCount()
self.table_EP.insertRow(tablerow)
self.table_EP.setItem(tablerow, 0, QtWidgets.QTableWidgetItem((self.query.value('col1'))))
self.table_EP.setItem(tablerow, 1, QtWidgets.QTableWidgetItem((self.query.value('col2'))))
self.table_EP.setItem(tablerow, 2, QtWidgets.QTableWidgetItem((self.query.value('col3'))))
self.table_EP.setItem(tablerow, 3, QtWidgets.QTableWidgetItem((str(self.query.value('col4')))))
self.table_EP.setItem(tablerow, 4, QtWidgets.QTableWidgetItem((str(self.query.value('col5')))))
self.table_EP.setItem(tablerow, 5, QtWidgets.QTableWidgetItem((str(self.query.value('col6')))))
self.table_EP.setItem(tablerow, 6, QtWidgets.QTableWidgetItem((self.query.value('col7'))))
self.table_EP.setItem(tablerow, 7, QtWidgets.QTableWidgetItem((str(self.query.value('col8')))))
self.table_EP.setItem(tablerow, 8, QtWidgets.QTableWidgetItem((str(self.query.value('col9')))))
self.table_EP.setCellWidget(tablerow, 9, w_checkbox())
self.table_EP.setCellWidget(tablerow, 9, checkbox_widget)
w_checkbox.stateChanged.connect(self.clicked_button())

在此处输入图像描述

非常感谢你的帮助(对不起我的英语(。

这是一些奇怪的代码。

最终,您需要在QtWidgets.QCheckBox实例上调用.stateChanged.connect(self.clicked_button())

使用以下行创建类QtWidgets.QCheckBox的实例:layout_cb.addWidget(w_checkbox()),但不将其分配给变量。

您应该首先将其分配给一个变量,然后使用该变量引用它,如下所示:

checkbox = QtWidgets.QCheckBox()
layout_cb.addWidget(checkbox)
checkbox.stateChanged.connect(self.clicked_button())

你确定你需要self.clicked_button()之后的括号吗?只有当它返回一个函数时,这才有意义。

最新更新