介绍:如何像使用浏览器一样保存用户之前的输入,使得用户可以保留之前的操作,避免每次进入界面后每次都需要重新输入的繁杂操作。
效果展示:
这里提供一个设计思路,将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文件如下图。