pyqt5 TableWidget

pyqt5 TableWidget逐行尾部添加,逐列写入,双for嵌套

绝对原创,拒绝抄袭! 搜索了好多篇博客论坛均无找到此功能,只能靠自己了。

try:
    for row_name in glo.dict.keys():
        if glo.dict[row_name][0] == False:  # 当字典数据为false表示我不需要此项测试,生成tablewidget
            continue
        if glo.dict[row_name][0] == True:   # true ,我需要此项测试,(尾部)生成一行 tablewidget
            row_cnt = self.mytableWidget.rowCount() # 返回当前行数(尾部)
            self.mytableWidget.insertRow(row_cnt)   # 尾部插入一行新行表格
            column_cnt = self.mytableWidget.columnCount()   # 返回当前列数
            self.testitem_count += 1    # 这是添加测试项数量的计数,可忽略
            for evercolumn in range(column_cnt):
                if evercolumn == 0:
                    item1 = QTableWidgetItem(str(row_name)) # 列=0时,写入名字(以字典的键值作名)
                else:
                    # 其余分别取 dict[key][0],dict[key][1],dict[key][2] 分别写入 列=1,2,3
                    item1 = QTableWidgetItem(str(glo.dict[row_name][evercolumn]))
                self.mytableWidget.setItem(row_cnt, evercolumn, item1) #最后,将(行,列,内容)配置

    self.mytableWidget.resizeColumnsToContents()  # 设置列宽高按照内容自适应
    #self.mytableWidget.resizeRowsToContents()  # 设置行宽和高按照内容自适应
    print("Slot Table Widget test setup successfully.")
except:
    print("Error for appending table list. ")

1.选择性的判断
首先,glo.dict是我设置的一个全局字典。glo.dict[row_name][0] 存储的是 ture/false,表示改测试是否会加入生成的表格中。

2.如下图,是glo.dict存取到的json字典内容形式。

"_TEST_LED_CONTROLS":[
    true,
    "1. Test 3 led (ready,error,test). ",
    -1,
    "false"
],
"_TEST_VOLTAGE_REF_CONTROLS":[
    true,
    "2. Test voltage ref. ",
    -1,
    "false"
],

3.实现效果
注意:(1)第一行的Name, Detail 等是在QT designer事先设置好的表头,当然你可不需设置,也能实现。
(2)mytableWidget 对应的是我的tableWidget的对象名,需要改成你自己的。
在这里插入图片描述
4.感谢阅读,请评论交流,大家共同进步!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值