我正在關注tkinter 中是否可以有一個垂直方向的按鈕?以及如何在 tkinter 畫布上創建按鈕?作為在 Tkinter Canvas 上為 Button 創建一些操作的指南?動作有效,但效果Button被凍結。
代碼:
import tkinter as tk
import tkinter.font as tkfont
main = tk.Tk()
font = tkfont.nametofont("TkDefaultFont")
label = "Click Me"
height = font.measure(label) 4
width = font.metrics()['linespace'] 4
canvas = tk.Canvas(main, height=height, width=width, background="SystemButtonFace", borderwidth=2, relief="raised")
canvas.create_text((4, 4), angle="90", anchor="ne", text=label, fill="SystemButtonText", font=font)
canvas.bind("<ButtonPress-1>", lambda ev: ev.widget.configure(relief="sunken"))
canvas.bind("<ButtonRelease-1>", lambda ev: ev.widget.configure(relief="raised"))
canvas.bind("<ButtonPress-1>", lambda ev: submit())
def submit():
print("1")
canvas.place(x=5, y=height 10)
main.mainloop()
如果我洗掉canvas.bind("<ButtonPress-1>", lambda ev: submit()),則效果Button有效,但有Submit作用。
否則,如果保留上面包含該行的代碼canvas.bind("<ButtonPress-1>", lambda ev: submit()),則 的效果Button被凍結,但Submit動作有效。
我正在尋找一種讓效果Button和Submit 動作一起作業的方法。請幫我。謝謝你。
uj5u.com熱心網友回復:
您需要add=True在事件的第二個系結上進行設定<ButtonPress-1>,這樣之前的系結就不會被覆寫:
canvas.bind("<ButtonPress-1>", lambda ev: ev.widget.configure(relief="sunken"))
canvas.bind("<ButtonRelease-1>", lambda ev: ev.widget.configure(relief="raised"))
canvas.bind("<ButtonPress-1>", lambda ev: submit(), add=True) # added add=True
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/452605.html
