我正在尝试实现一个下拉列表,该下拉列表会根据文本文件的行数动态变化。 我可以使用以下方法找到行数:
with open('Cipher 3.5 Output.txt') as f:
Line_Count = (sum(1 for _ in f))
我接下来要做的是让下拉列表中的每一行都有一个选项,例如,如果文件有三行,则下拉列表将包含选项1,2和3。
我正在努力实现这一点,以便在我的加密程序中,用户可以选择要读取和解密的加密文本文件的哪一行。
目前我的界面如下所示:
我打算在Key2和Output之间添加一个标签,上面写着'选择行'或类似的东西,然后在两个输入框之间的下拉框。最后,我将在Random Key和Clear按钮之间添加一个按钮,将按行号设置为' all'并阅读整个文件。
那么,我该如何实现动态变化的下拉列表呢?感谢您的帮助。
我非常怀疑您是否需要它,但请参阅Here以了解我的其他代码。
答案 0 :(得分:2)
您可以使用ttk.Combobox让用户选择一行,您可以将命令与按钮Encrypt
相关联。在此命令(函数)中,您将放置计算行的代码,然后您将更新ttk.Combobox
的值。如果您使用的是Python 3(我希望),您可以通过以下方式导入 ttk.Combobox :
from tkinter.ttk import Combobox
组合框是 tkinter 扩展 ttk 的一部分,您明确地说要从该模块导入。
如果您使用的是Python 2,则只需从ttk:
导入即可from ttk import Combobox
现在,假设以下是Button Encrypt
的代码:
encrypt = Button(master, text='Encrypt')
然后,您可以通过以下方式将命令与按钮相关联:
encrypt = Button(master, text='Encrypt', command=on_click) # without ( )
现在,您可以定义函数on_click
:
def on_click():
# calculate the lines
# update the values of the Combobox