提问人:bearface888 提问时间:11/17/2023 更新时间:11/17/2023 访问量:83
为什么 tkinter 中这么短的代码如此缓慢?
Why is such a short code in tkinter so horribly slow?
问:
我是 Python 初学者,目前正在学习创建单位转换程序。我不确定问题出在哪里,但这个程序运行得非常慢。 *我的意思是“慢慢”,我点击了条目,但它没有响应。如果我多次点击,大约需要 8-15 秒才能确认点击并允许我进入。 *有时运行后很慢,有时第一次运行时不慢,单击条目即可正常工作。但是一旦从下拉菜单中选择了不同的单位,它就会开始变慢。 这是我的代码 - 只是构建条目和下拉列表。功能部分尚未完成:
from tkinter import *
root=Tk()
entries_dict = {}
for row in range(6):
for column in range(2):
key = (row, column)
entries_dict[key] = Entry(root, width =10)
entries_dict[key].grid(row=row, column=column * 3)
if column == 1:
entries_dict[key].config(state="readonly")
unitg = ["g", "mg", "ug", "ng"]
unitL = ["L", "mL", "uL", "nL"]
unitmol = ["mol", "mmol", "umol", "nmol"]
unitgL = ["g/L", "g/mL", "g/uL", "g/nL",
"mg/L", "mg/mL", "mg/uL", "mg/nL",
"ug/L", "ug/mL", "ug/uL", "ug/nL",
"ng/L", "ng/mL", "ng/uL", "ng/nL"]
unitmolL = ["mol/L", "mol/mL", "mol/uL", "mol/nL",
"mmol/L", "mmol/mL", "mmol/uL", "mmol/nL",
"umol/L", "umol/mL", "umol/uL", "umol/nL",
"nmol/L", "nmol/mL", "nmol/uL", "nmol/nL"]
unitgmol = ["g/mol", "g/mmol", "g/umol", "g/nmol",
"mg/mol", "mg/mmol", "mg/umol", "mg/nmol",
"ug/mol", "ug/mmol", "ug/umol", "ug/nmol",
"ng/mol", "ng/mmol", "ng/umol", "ng/nmol"]
unitcollection = [unitg, unitL, unitmol, unitgL, unitmolL, unitgmol]
var_dict = {}
for row, units in enumerate(unitcollection):
for column in [1, 4]:
key = (row, column)
var_dict[key] = StringVar(root)
var_dict[key].set(units[0] if column == 1 else units[1])
dropdownvar = OptionMenu(root, var_dict[key], *units)
dropdownvar["menu"].config(bg="gray")
dropdownvar.config(width=5)
dropdownvar.grid(row=row, column=column)
for row in range(6):
label_equal = Label(root, text = "=", width = 5)
label_equal.grid(row=row, column = 2)
root.mainloop()
我刚刚学习了一个月,对这个问题感到沮丧。如果你能帮我,我将不胜感激! *尝试了 pycharm 和 IDLE,速度同样慢。
答: 暂无答案
上一个:Tkinter 程序中的循环标签
评论