PyQt5学习笔记(二)

6 篇文章 0 订阅
4 篇文章 0 订阅

    今天在写一个单一条件查询的按钮,然后一直卡在某些位置

主要存在几个问题:

1、首先查询一条数据后,再次查询前,需要先清空QTableWideget,这样就避免出现第二次查询时出现第一次查询的结果

2、查询后,插入数据时,没有显示,后面发现是自己粗心大意,把一行插入行的代码删了导致的,以后代码最好备份,先在一个单独的Py文件验证,验证OK后,再搬到总的Py文件中,或者把需要改的函数复制一份

3、查询数据时,下拉框中选中的第一条可以查询,第二条就查询不到,百思不得其解,后面就想着假设自己查第二条,按照我的代码应该如何实现,这才发现问题所在

4、总之,遇到了总总问题,后面都一一解决,所以不要放弃,未解决前有多郁闷,解决后就有多开心,给自己点个赞!!!

代码如下:

def search_information(self):
    rowlength1 = self.e.rowCount() #表中的行数
    rowlength = len(self.sheet1.col_values(1)) #excel中总行数
    collength = len(self.sheet1.row_values(0))-1 #excel中总列数(除掉备注)
    if rowlength1 > 0: # 如果表中存在数据,先删除
        for i in range(0, rowlength):
            self.e.removeRow(0)
    else:
        pass
    a = []
    for row in range(1, rowlength):
        if self.moudle1.currentText() == "": # 如果下拉框为空,则显示全部数据
            self.e.insertRow(row-1)
            for col in range(0, collength):
                self.e.setItem(row-1, col, QTableWidgetItem(self.sheet1.row_values(row)[col]))
        elif(self.moudle1.currentText() == self.sheet1.row_values(row)[1]): # 如果下拉框的内容与excel中的内容一致,那么把对应的行号传给a
            a.append(row)
    searchlength = len(a) #搜索到的结果行数
    for row in range(1,searchlength): # 把符合条件的数据插入到QTableWidget中
        self.e.insertRow(row-1)
        for col in range(0,collength):
            self.e.setItem(row-1, col, QTableWidgetItem(self.sheet1.row_values(a[row-1])[col]))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值