TOday我从ActiveTcl 8.5.9更新为ActiveTcl 8.5.17以修复此bug。我在Mac上,os x 10.7。我注意到在程序中打破了一些东西。当我点击不相关的区域时,某些按钮闪烁黑色轮廓(这在更新之前没有发生)。最令人担忧的是我的一些支票按钮没有显示出来!例如:
import tkinter as tk
t=tk.Tk()
c=tk.IntVar()
b=tk.Checkbutton(master=t,variable=c)
b.grid(column=0,row=1,sticky="nsew")
t.mainloop()
给出一个空窗口,但代码为:
import tkinter as tk
t=tk.Tk()
c=tk.IntVar()
b=tk.Checkbutton(master=t,variable=c,text="bob")
b.grid(column=0,row=1,sticky="nsew")
t.mainloop()
编辑:Checkbutton仍在那里,因为它对点击作出反应,但它只是向下显示
给出了预期的结果。现在出现了奇怪的部分,将文本更改为" aaa"代码再也不起作用了。这与文本的长度有关吗?我尝试过添加填充,改变粘性并没有任何帮助:(在其他情况下,它甚至更奇怪。在8.5.17中有什么变化或者我的版本是关闭的吗?
答案 0 :(得分:0)
使用ttk小部件可以提高跨平台的一致性。
import tkinter as tk
import tkinter.ttk as ttk
tkk是一组比tk中提供的更现代的小部件。
我想tk会调用旧的OS API for GUI,然后自定义这些小部件。 并且ttk调用GUI的最后一个本机默认API。 这会导致OS X出现问题,因为Apple在发布新版操作系统时认为向后兼容性不是优先考虑的问题