Python tkinter画布中的按钮效果
我有以下代码:Python tkinter画布中的按钮效果,python,tkinter,canvas,Python,Tkinter,Canvas,我有以下代码: canvas = tk.Canvas(frame, width=20, height=50) buttonBG1 = canvas.create_rectangle(0, 0, 20, 50, outline="") buttonTXT1 = canvas.create_text((10, 25), text="Press Me", angle='90', font=("Calibri", 8)) canvas.tag_
canvas = tk.Canvas(frame, width=20, height=50)
buttonBG1 = canvas.create_rectangle(0, 0, 20, 50, outline="")
buttonTXT1 = canvas.create_text((10, 25), text="Press Me", angle='90', font=("Calibri", 8))
canvas.tag_bind(buttonBG1, "<ButtonPress-1>")
canvas.tag_bind(buttonTXT1, "<ButtonRelease-1>", press) # press is the command function
canvas.grid(column=0, row=0)
它没有给出任何错误,但它没有给出应有的效果。我的代码有什么问题。您的代码没有错误,但默认情况下,画布的边框宽度为0,因此浮雕效果不可见。为了能够看到它们,您需要将边框宽度设置为至少1 在下面的示例中,我还使用矩形的
activefill
选项在光标位于矩形上时高亮显示它
import tkinter as tk
def press(event):
# make relief effect button is pressed
canvas.config(relief='sunken')
def release(event):
# remove relief when button is no longer pressed
canvas.config(relief='flat')
root = tk.Tk()
canvas = tk.Canvas(root, width=20, height=50, borderwidth=1)
buttonBG1 = canvas.create_rectangle(0, 0, 20, 50, outline="", activefill='#F1F1F1') # highlight rectangle when active
buttonTXT1 = canvas.create_text((10, 25), text="Press Me", angle='90', font=("Calibri", 8))
canvas.bind("<ButtonPress-1>", press)
canvas.bind("<ButtonRelease-1>", release)
canvas.grid(column=0, row=0)
root.mainloop()
将tkinter作为tk导入
def压力(事件):
#按下“生成释压效果”按钮
canvas.config(relief='sunken')
def释放(事件):
#当按钮不再按下时,卸下安全阀
canvas.config(relief='flat')
root=tk.tk()
canvas=tk.canvas(根,宽度=20,高度=50,边框宽度=1)
buttonBG1=画布。创建_矩形(0,0,20,50,outline=“”,activefill=”#f1f1')#激活时高亮显示矩形
buttonTXT1=画布。创建文本((10,25),text=“按我”,angle=“90”,font=(“Calibri”,8))
canvas.bind(“,按)
canvas.bind(“,release)
canvas.grid(列=0,行=0)
root.mainloop()
当我添加边框宽度时,它仍然没有给我效果。此外,我不希望画布上有任何轮廓,而borderwidth为我提供了轮廓效果OK,那么如果你不想看到边框,为什么要尝试更改浮雕(浮雕只是一种视觉效果,因为为边框选择的颜色)?你到底想实现什么?我想添加凹陷和凸起的效果,以查看我按下了按钮,但是,最初我不想看到按钮的边框,除非按下。
import tkinter as tk
def press(event):
# make relief effect button is pressed
canvas.config(relief='sunken')
def release(event):
# remove relief when button is no longer pressed
canvas.config(relief='flat')
root = tk.Tk()
canvas = tk.Canvas(root, width=20, height=50, borderwidth=1)
buttonBG1 = canvas.create_rectangle(0, 0, 20, 50, outline="", activefill='#F1F1F1') # highlight rectangle when active
buttonTXT1 = canvas.create_text((10, 25), text="Press Me", angle='90', font=("Calibri", 8))
canvas.bind("<ButtonPress-1>", press)
canvas.bind("<ButtonRelease-1>", release)
canvas.grid(column=0, row=0)
root.mainloop()