tk.label和tk.Button的内容怎么能随数组变化而变化? 40C

用python tkinter编程的时候
先定义了一个数组List
然后有
root=tk.Tk()
............
img=drawImage(List)
tk.label(root, image=img).pack()
tk.Button(root, text=List, command=lambda:changeList(List)).pack()
..........
root.mainloop()
这样的句子,drawImage函数根据数组List的内容画图,在label里显示出来,button的文本是数组List的内容,点击一下button就调用changeList函数改变该List的内容
预想的是点一下button,List变量,显示的图片和button的文字就跟着改变,但是实际运行的时候点了没反应
要怎么改?

3个回答

你要给button增加事件对象啊

CZQ411
CZQ411 不知道耶
2 年多之前 回复
qq_41724158
qq_41724158 不是command么?
2 年多之前 回复

这个现象我以前也有类似遇到过,我用的是WXpython 和pyqt这两个GUI的包。
我的要求: 几个button,分别对应不同的事件。开始运行后就依次执行每个button对应的事件,要求每次执行完一个事件后对应的button的背景颜色,显示内容改变。
实际运行结果是:运行完所有的事件后,所有button的背景内容,才刷新。
问题原因:我把所有的事件程序都编写在主线程中,这样gui控件一直无法占用线程,直到所有的事件运行完才轮到控件执行,所以导致这个现象。
解决方案:让主线程空闲,只接收控件处理事件,其他的逻辑放在另外一个线程中,这样就可以运行了。
这个方案亲测有效,望采纳!

用你这个例子说,可能比较简单。创建一个线程,包含你的list文字数组和你的图片数组,每次发送文字和图片到你的主线程,然后主线程只负责显示就可以了。坐等C币,谢谢了!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问