更新到ActiveTcl 8.5.17意外行为

时间:2015-03-09 22:16:02

标签: python macos python-3.x tkinter

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()

给出一个空窗口window,但代码为:

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中有什么变化或者我的版本是关闭的吗?

1 个答案:

答案 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在发布新版操作系统时认为向后兼容性不是优先考虑的问题