pyqt5下pushButton框保留用户历史输入

介绍:如何像使用浏览器一样保存用户之前的输入,使得用户可以保留之前的操作,避免每次进入界面后每次都需要重新输入的繁杂操作。

效果展示:
在这里插入图片描述

这里提供一个设计思路,将qt框接收到的用户输入用一个列表接收,每次软件使用结束后将该列表写入文件进行存储,下次用户再次打开软件界面时,重新调用文件。

主要包含以下几个核心代码
1.按钮的设置根据自己的需求自己按照pyqt进行正常设置。

2.对需要连接的按钮进行信号连接:

self.pushButton3.clicked.connect(self._open_ip)

3.连接信号的具体实现功能代码:

    def _open_ip(self):
    	#以每行读取并按每行为列表的一个元素传入ip列表
        with open('ip_file.txt', 'r') as f:
            ip_list = [line.rstrip('\n') for line in f]
            #上面的ip_list可以做一个反序操作,这样的话qt列表就会按照用户的输入的时间进行排列(我没用改)
            #每次读取文件中的后5个ip(最新的5个,可自己设置读取个数)
            self.ip_list = ip_list[-5:]  
            #print("self.ip_list",self.ip_list)
        #下面代码中current=4为每次在框中显示ip列表的第五个元素(自己设置,我这里是用户最新的)
        self.ip, _ = QInputDialog.getItem(self, '输入IP', 'IP地址',self.ip_list, current = 4)
        if self.ip_list:
        	#避免重复的ip一直存储
            if self.ip in self.ip_list:
                pass
            else:
                ip_list.append(self.ip)
        else:
            ip_list.append(self.ip)
        f=open('ip_file.txt','w')
        for line in ip_list:
            f.write(line+'\n')
        f.close()

注:用户的所有的历史输入都会存在ip_file.txt文件中。当前文件夹下包含的ip_file.txt文件如下图。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48994268/article/details/114576566