用Pyinstaller转换后如何记住Tkinter Entry中的输入历史记录?

时间:2018-06-27 19:15:47

标签: python python-3.x tkinter pyinstaller

我正在使用Tkinter构建GUI应用程序,然后使用pyinstaller --onefile

转换为一个exe文件。

我需要输入文本框记住以前的输入历史记录。这样,当用户单击“输入”框时,将显示先前输入的值,然后用户可以选择其中一个

请注意,这应该在一个exe文件中进行,即使关闭后它也会记住历史记录。

启动应用程序时,我已经考虑过创建文本文件,该文件可以存储输入历史记录。并且即使关闭应用程序后也要保留文本文件,然后在重新打开应用程序时检查该文件。那是可行的。 但是当单击“输入”框然后选择一个历史输入时如何显示输入历史?

1 个答案:

答案 0 :(得分:1)

好的,所以我的示例可能比需要的复杂得多,但是在这种情况下,我无法弄清楚如何使菜单正常工作,而不会导致在输入字段中键入问题。

我的示例使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <div class="col-md-4 col-lg-4"> <ul> <li class="waves-effect waves"> <a href="" id="ms"><i class="fa fa-pull-right fa-angle-double-right"></i>Faculty of Management Sciences</a> </li> <li class="waves-effect waves"> <a href="" id="ss"><i class="fa fa-pull-right fa-angle-double-right"></i>Faculty of Social Sciences</a> </li> </ul> </div> <div class="col-md-4 col-lg-4 subparent"> <ul id="deptms" class="hidden"> <li class="waves-effect waves"> <a href="" id="ba"><i class="fa fa-pull-right fa-angle-double-right"></i>Department of Business Administration</a> </li> <li class="waves-effect waves"> <a href="" id="mc"><i class="fa fa-pull-right fa-angle-double-right"></i>Department of Commerce</a> </li> </ul> <ul class="hidden" id="deptss"> <li class="waves-effect waves"> <a href="" id="eco"><i class="fa fa-pull-right fa-angle-double-right"></i>Department of Economics</a> </li> <li class="waves-effect waves"> <a href="" id="psy"><i class="fa fa-pull-right fa-angle-double-right"></i>Department of Psychology</a> </li> </ul> </div> <div class="col-lg-3 col-md-3"> <ul id="ul_ba" class="hidden"> <li class="waves-effect waves"> <a href="">Programs</a> </li> <li class="waves-effect waves"> <a href="">Key Personnels</a> </li> <li class="waves-effect waves"> <a href="">Research</a> </li> <li class="waves-effect waves"> <a href="">Student Counselling</a> </li> </ul> <ul id="ul_mc" class="hidden"> <li class="waves-effect waves"> <a href="">Programs</a> </li> <li class="waves-effect waves"> <a href="">Key Personnels</a> </li> <li class="waves-effect waves"> <a href="">Research</a> </li> <li class="waves-effect waves"> <a href="">Student Counselling</a> </li> </ul> </div>窗口作为菜单来保存先前输入的部分匹配的值。

该想法是通过将Toplevel()绑定到记录输入字段的函数,然后通过将所有键绑定到检查字段来对照当前字段中的记录值来检查所有记录的值,从而保留先前输入内容的记录功能。

使用跟踪变量,我们可以跟踪是否存在顶层窗口,如果没有找到匹配项,还可以确保不显示顶层窗口。

我尚未弄清的一个问题是从按钮上删除边框,使边框看起来更像传统的下拉菜单。

如果您有任何疑问,请告诉我。

Return

结果:

这是您输入3个不同的单词并保存每个单词后得到的结果。

enter image description here

通过单击显示的任何按钮,它将用该单词替换输入字段中的内容。