Pyside QTablewidget qcheckbox click событие - PullRequest
0 голосов
/ 24 мая 2018

Я добавил qcheckbox в первую ячейку qtablewidget, и теперь мне нужно как получить доступ к флажку и как получить событие его щелчка. В основном, я хочу, чтобы флажок был выбран, флажок должен быть выбран, а в столбце непроверенный должен быть отключен,Вот код:

def add_items(self):
    rows = 5
    cols = 5
    self.tableWidget.setRowCount(5)
    self.tableWidget.setColumnCount(5)
    for r in range(0, rows):
        for c in range(1, cols):

            self.qwidget = QtGui.QWidget()
            self.checkbox = QtGui.QCheckBox()
            self.checkbox.setCheckState(QtCore.Qt.Checked)
            qhboxlayout = QtGui.QHBoxLayout(self.qwidget)
            qhboxlayout.addWidget(self.checkbox)
            qhboxlayout.setAlignment(QtCore.Qt.AlignCenter)
            qhboxlayout.setContentsMargins(0, 0, 0, 0)
            self.tableWidget.setCellWidget(r, 0, self.qwidget)

            item = QTableWidgetItem('note'+str(r))
            self.tableWidget.setItem(r, c, item)
    print 'done'

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете использовать сигнал itemChanged.

from PySide.QtCore import Slot, Qt
from PySide.QtGui import QTableWidgetItem

@Slot(QTableWidgetItem)
def on_tableWidget_itemChanged(self, item):
    """ Handles the row's state
    :type item: QTableWidgetItem
    :parameter item: The changed item
    """
    checked = item.checkState() == Qt.Checked
    if checked:  # the item gets checked
        # do stuff here..
    else:  # the item gets unchecked
        # do stuff here
...