如何用PyQt使Qt表的行变粗?

问题描述 投票:0回答:1

在PyQt创建者中,我创建了一个9 * 9表,如下所示:enter image description here在该表中,我希望每隔三行分隔行,每三行分隔列,边框线为粗体。这可能在PyQt中做到吗?如果有,怎么样?

python pyqt pyqt5
1个回答
1
投票

使用委托:

class Delegate(QStyledItemDelegate):
    def paint(self, painter, option, index):
        super().paint(painter, option, index)
        if ((1+index.row()) % 3 == 0): # Every third row
            painter.setPen(QPen(Qt.red, 3))
            painter.drawLine(option.rect.bottomLeft(), option.rect.bottomRight())

        if ((1+index.column()) % 3 == 0): # Every third column
            painter.setPen(QPen(Qt.red, 3))
            painter.drawLine(option.rect.topRight(), option.rect.bottomRight())


if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    v = QTableView()
    model = QStandardItemModel(9, 9)
    v.setModel(model)
    v.show()
    v.setItemDelegate(Delegate(v))
    sys.exit(app.exec_())
© www.soinside.com 2019 - 2024. All rights reserved.