PyQt: 在QTableView中改变复选框的对齐方式

5 投票
1 回答
1166 浏览
提问于 2025-04-15 23:30

我有一个带复选框的 QTableView,但是复选框是靠左对齐的,我想要把它居中对齐。我试过了这个方法,但是在“check”函数上遇到了问题:

def drawCheck(self, painter, option, rect, state):
    textMargin = QtGui.QApplication.style().pixelMetric(QtGui.QStyle.PM_FocusFrameHMargin) + 1
    checkRect = QtGui.QStyle.alignedRect(option.direction, QtCore.Qt.AlignCenter, 
                 check(option, option.rect, QtCore.Qt.Checked).size(),
                QtCore.QRect(option.rect.x() + textMargin, option.rect.y(),
                option.rect.width() - (textMargin * 2), option.rect.height()))                           
    QtGui.QItemDelegate.drawCheck(self, painter, checkRect, state)

什么是“check”函数?我该如何把这个C++的例子用PyQt重新实现呢?

1 个回答

0

你链接的示例代码里没有一个叫 check 的函数——这可能是个打错了的地方,已经被修正了?或者说这个函数是代码里自己定义的,并不是 Qt 里自带的?

撰写回答