pyqt5中利用搜索框和按钮,搜索表中内容

之前找了很多关于这方面的资料,但是都不太满意,通过询问和尝试,终于找到了这样的一个方法,希望对你们有用:
先上代码:

self.searchLab = QLineEdit(self)
self.searchLab.setPlaceholderText('请输入需要查询的数据')
self.bt1 = QPushButton('点击查询', self)
self.bt1.clicked.connect(self.showMessage)
def showMessage(self):
    wen = self.searchLab.text()
    items = self.table.findItems(wen, QtCore.Qt.MatchExactly)
    for r in range(self.rows):       
        for c in range(self.cols):            
            self.table.item(r, c).setBackground(QBrush(QColor(255, 255, 255)))
        
    if items:
        if len(items) > 0:
            for item in items:
                item.setBackground(QBrush(QColor(0, 255, 0)))
                #item.setForeground(QBrush(QColor(255, 0, 0)))           
    else:
        QMessageBox.information(self, "提示", "您所搜索的内容不在表格中!")


然后加下来是分段讲解:

self.searchLab = QLineEdit(self)
self.searchLab.setPlaceholderText('请输入需要查询的数据')
self.bt1 = QPushButton('点击查询', self)
self.bt1.clicked.connect(self.showMessage)

首先定义一个self.searchLab搜索框,再定义一个self.bt1的按钮,然后点击按钮会链接到showMessage()函数

    wen = self.searchLab.text()
    items = self.table.findItems(wen, QtCore.Qt.MatchExactly)

用wen来存放文本框输入的内容

    for r in range(self.rows):       
        for c in range(self.cols):            
            self.table.item(r, c).setBackground(QBrush(QColor(255, 255, 255)))

用两个for循环分别遍历行和列,并将表格中每一个元素的背景都重置成白色

 if items:
        if len(items) > 0:
            for item in items:
                item.setBackground(QBrush(QColor(0, 255, 0)))
                #item.setForeground(QBrush(QColor(255, 0, 0)))           
 else:
     QMessageBox.information(self, "提示", "您所搜索的内容不在表格中!")

最后,如果表格中的某个元素与用户输入到文本框中的内容一样的话,就将其背景设置为其他颜色。
否则,如果文本框内容为空或者在表格中没有用户所要搜索的内容,那就弹出一个消息框,提示搜不到所要搜索的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值