用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的文字就跟着改变,但是实际运行的时候点了没反应
要怎么改?
你要给button增加事件对象啊
这个现象我以前也有类似遇到过,我用的是WXpython 和pyqt这两个GUI的包。
我的要求: 几个button,分别对应不同的事件。开始运行后就依次执行每个button对应的事件,要求每次执行完一个事件后对应的button的背景颜色,显示内容改变。
实际运行结果是:运行完所有的事件后,所有button的背景内容,才刷新。
问题原因:我把所有的事件程序都编写在主线程中,这样gui控件一直无法占用线程,直到所有的事件运行完才轮到控件执行,所以导致这个现象。
解决方案:让主线程空闲,只接收控件处理事件,其他的逻辑放在另外一个线程中,这样就可以运行了。
这个方案亲测有效,望采纳!
用你这个例子说,可能比较简单。创建一个线程,包含你的list文字数组和你的图片数组,每次发送文字和图片到你的主线程,然后主线程只负责显示就可以了。坐等C币,谢谢了!