我试图在我的QTableView的第二列设置rowspan,但不知何故逻辑上我错过了一些东西。我只能得到A和B但不能得到C.加上我收到警告 QTableView :: setSpan:span不能重叠和 QTableView :: setSpan:单个单元格跨度赢了&t添加
我的代码段是: -
startspan = 0
for i, tcname in enumerate(tcfilename):
if tcfilename[i]:
if i > 0:
print '#######################'
print 'startspan = '+str(startspan)+' i = '+str(i)
if tcname == tcfilename[i-1]:
#setSpan (row, column, rowSpan, columnSpan)
print 'if (from_row, till_row) '+str(startspan)+' '+str(i)
table_view.setSpan(startspan, 1, i, 1);
elif tcname != tcfilename[i-1]:
print 'Else no span (from_row, till_row) '+str(startspan)+' '+str(i)
table_view.setSpan(startspan, 1, i, 1);
if i == 1:
startspan = 0
else:
startspan = i
else:
break
答案 0 :(得分:0)
这是用简单的两行代码
for toRow, tcname in enumerate(tcfilename):
table_view.setSpan(tcfilename.index(tcname), 1, tcfilename.count(tcname), 1)
答案 1 :(得分:0)
我做了一个漂亮的小功能来解决这个问题。.有递归但没有递归就对其进行了优化..为它提供了一个表和一个数据集
def my_span_checker(self, my_data, table):
for i in range(len(my_data)):
my_item_count = 0
my_label = table.item(i, 0).text()
for j in range(len(my_data)):
if table.item(j, 0).text() == my_label:
my_item_count += 1
if my_item_count != 1:
table.setSpan(i, 0, my_item_count, 1)