Python 我的带有滚动条的tkinter窗口滞后

Python 我的带有滚动条的tkinter窗口滞后,python,tkinter,Python,Tkinter,首先,我想说我并不像你们中的许多人那样擅长python。例如,我不知道课堂是如何运作的。但我知道所有的基本知识和一些细节 不管怎么说,我现在遇到的问题是,我有一个带有许多复选框和滚动条的窗口,当我向下滚动时,它会严重滞后。以下是一些照片: 滞后消失了,只需要几分钟 代码如下: from tkinter import * root = Tk() vscrollbar = Scrollbar(root) c = Canvas(root,yscrollcommand=vscrollbar.set

首先,我想说我并不像你们中的许多人那样擅长python。例如,我不知道课堂是如何运作的。但我知道所有的基本知识和一些细节

不管怎么说,我现在遇到的问题是,我有一个带有许多复选框和滚动条的窗口,当我向下滚动时,它会严重滞后。以下是一些照片:

滞后消失了,只需要几分钟

代码如下:

from tkinter import *

root = Tk()
vscrollbar = Scrollbar(root)
c = Canvas(root,yscrollcommand=vscrollbar.set)
vscrollbar.config(command=c.yview)
vscrollbar.pack(side=LEFT, fill=Y)
f=Frame(c)
c.pack(side="left", fill="both", expand=True)
c.create_window(0,0,window=f, anchor='nw')
# creates the variables that store the values of the checkboxes
job_dictionary = {}
with open("jobs.txt","r") as file:
    for line in file:
        job_dictionary[line.replace("\n","")] = IntVar()
# row_ and column_ are used to determine the grid placement of all the checkbuttons.
row_ = 2
column_ = 0
for line in sorted(job_dictionary.keys()):
    Checkbutton(f, text=line.replace("\"",""), variable=job_dictionary[line]).grid(row=row_, column=column_, sticky=W)
    row_ += 1
    if row_ > 60:
        row_ = 2
        column_ += 1
root.update()
c.config(scrollregion=c.bbox("all"))

root.mainloop()

每个复选框的值作为值存储在字典中<代码>行和
用于确定每个复选框在框架中的位置。同时使用滚动条和帧的代码取自。

当我使用自己的
jobs.txt
文件运行代码时,其中包含大约130个作业,我没有看到过多的延迟。请提供一个文件(包括
jobs.txt
文件的内容)。@martineau仍然无法重现此问题…您的文件仅比我使用的文件大4倍左右。正如我之前所建议的,发布一个@martineau我不确定如何使代码更简洁。我添加了from tkinter import*,并将第1行改为第1行(我输入了一个拼写错误),所以现在直接复制粘贴代码时代码可以工作。使用此代码会为我重现错误。这就是我为使某些内容可运行所做的全部工作(加上在最后添加一个
root.mainloop()
)。不幸的是,当问题无法重现时,很难提供帮助。注意我的计算机系统已经使用了好几年了,所以我怀疑这是硬件速度问题。