如何在表中跨越单元格后修复空边框线?

2024-09-30 04:30:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究python脚本,我使用PyQt4。当我尝试使用函数setSpan(row, col, rowSpanWidth, colSpanWidth)进行跨越并使用“author”应用于单元格时。我得到这个结果,边界被清除,我不知道为什么。在表格或其他(右侧)边上的单元格上,跨距可以很好地工作。左边不是右边。你知道吗

最终表格

有谁能给我一个建议,我应该怎么做,以跨越好的或建议呢?你知道吗

代码:

self.table = QTableWidget()
self.table.setRowCount(7)
self.table.setColumnCount(2)
self.table.verticalHeader().setVisible(False)
self.table.horizontalHeader().setVisible(False)

# add data into table
for indexRow, row in enumerate(tableDict):
    for indexCol, col in enumerate(tableDict[indexRow]):
        self.table.setItem(indexRow, indexCol, QTableWidgetItem(tableDict[indexRow][indexCol]))

self.table.setSpan(3, 0, 2, 1)

# table is readable only
self.table.setStyleSheet("border:0px;")
self.table.setFocusPolicy(Qt.NoFocus)
self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.table.setSelectionMode(QAbstractItemView.NoSelection)
self.table.setShowGrid(True)

self.table.resizeColumnsToContents()`

Tags: inselffalsefortablecol建议表格
1条回答
网友
1楼 · 发布于 2024-09-30 04:30:17

经过几个小时的尝试,我找到了不清楚的解决方案,但主要是它的工作:-)

1)当边框显示不正确时,在侧面添加额外的空列。 2) 跨表内有数据的列。 3) 将额外列宽设置为1px(它只生成行)。你知道吗

代码:

self.table = QTableWidget()
self.table.setRowCount(7)
self.table.setColumnCount(2 + 1)    # added 1 extra column
self.table.verticalHeader().setVisible(False)
self.table.horizontalHeader().setVisible(False)

# add data into table
for indexRow, row in enumerate(tableDict):
    for indexCol, col in enumerate(tableDict[indexRow]):
        self.table.setItem(indexRow, indexCol + 1, QTableWidgetItem(tableDict[indexRow][indexCol]))

self.table.setSpan(3, 0 + 1, 2, 1)

# table is readable only
self.table.setFocusPolicy(Qt.NoFocus)
self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.table.setSelectionMode(QAbstractItemView.NoSelection)
self.table.setShowGrid(True)

self.table.resizeColumnsToContents()
self.table.setColumnWidth(0, 1)    # need to be after resizeColumnsToContents(), or it will not works

Right result here

相关问题 更多 >

    热门问题