【发布时间】:2012-05-27 08:02:15
【问题描述】:
我正在使用 Tkinter、python 中的按钮。
问题是当我单击一个按钮时,按钮的文本会抖动。这可能是此小部件的默认行为,我不知道如何禁用它并使其成为静态。
有谁知道如何解决这个问题?
【问题讨论】:
-
你能给出一个最小的代码示例吗?
标签: python button widget tkinter options
我正在使用 Tkinter、python 中的按钮。
问题是当我单击一个按钮时,按钮的文本会抖动。这可能是此小部件的默认行为,我不知道如何禁用它并使其成为静态。
有谁知道如何解决这个问题?
【问题讨论】:
标签: python button widget tkinter options
我假设您的意思是当您单击按钮时,浮雕会从凸起变为凹陷。
这是我在http://wiki.tcl.tk/1048 上找到的(点击“显示讨论”查看):
不幸的是,单击时使用的浮雕是硬编码的(如 'sunken'),所以你不能在不破解 Tk 的情况下为每个小部件配置它 按钮绑定的内部结构。
因此,解决此问题的最简单方法是始终使按钮看起来凹陷
MyButton = Tkinter.Button(
self.frame,
text = "Foobar",
command = self.foobar,
relief=Tkinter.SUNKEN
)
这样做的缺点是它可能会使按钮看起来没有响应。
您还可以使用按钮以外的小部件作为可点击项目(由 Joel Cornett 建议)。下面是一个将标签用作按钮的简单示例:
import Tkinter
class main:
def __init__(self,root):
# make a label with some space around the text
self.lbl1 = Tkinter.Label(root,
width = 16, height = 4,
text = "Foobar")
self.lbl1.pack()
# Call a function when lbl1 is clicked
# <Button-1> means a left mouse button click
self.lbl1.bind("<Button-1>", self.yadda)
self.lbl1.bind("<Enter>", self.green)
self.lbl1.bind("<Leave>", self.red)
def yadda(self, event):
self.lbl1.config(text="Clicked!")
def green(self, event):
self.lbl1.config(bg="green")
def red(self,event):
self.lbl1.config(bg="red")
if __name__ == "__main__":
root = Tkinter.Tk()
main(root)
root.mainloop()
【讨论】: