pyqt qt4 qTableView禁用特定列的网格线

时间:2014-02-25 18:19:25

标签: qt pyqt qtableview qtstylesheets

我尝试使用qt样式表来定位特定列。

在HTML CSS中你可以做这样的事情

table.players td:nth-child(N) { /* ... */ }

查看文档,我找不到定位特定qTableView列的方法

http://qt-project.org/doc/qt-4.8/stylesheet.html

http://qt-project.org/doc/qt-4.8/stylesheet-reference.html

http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html

我认为在这个例子中我可以用一个数字替换section来定位一个特定的列,但我不认为我理解它在做什么

http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qtableview

QTableView QTableCornerButton::section {
   background: red;
   border: 2px outset red;
}

如果使用qt样式表无法做到这一点,那么覆盖绘制方法和重用Qt代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

实现此目的的一种方法是使用QItemDelegate渲染每个单元格。您可以将几个c ++示例转换为Python代码:

How can I set the line style of a specific cell in a QTableView?

How do I assign a border to a specific QTableWidgetItem or a row in a QTableWidget?

在您的情况下,您可以使用模型索引(直接或从模型中查找数据)来确定为每个单元格绘制的边框类型以及何时不绘制一个边框。