有沒有一種簡單的方法可以讓右鍵選單只在文本上打開,而不是整個視窗?
這是一個快速混搭,以說明我的問題。 在第 25 行繼承 texty 是一種嘗試,它并不奏效,但它接近于一種簡單的解決方案,就像我所尋求的那樣。 我希望能避免在我每次想設定右鍵選單時都要對整個類進行編程。
from tkinter import *
from tkinter import ttk
def menu_popup(event)。
try:
popup.tk_popup(event.x_root, event.y_root, 0)
最后:
popup.grab_release()
win = Tk()
win.geometry("600x550 125 125")
e = Entry(win, width=50, font=('Helvetica', 11)
e.pack()
e.insert(0, "Some text...." )
label = Label(win, text="右鍵查看選單", font=('Helvetica 18')
label.pack(pady= 40)
texty=Text(win, height=10)
texty.pack()
popup = Menu(texty, tearoff=0)
popup.add_command(label="New")
popup.add_separator()
popup.add_command(label="Open")
popup.add_separator()
popup.add_command(label="Close")
win.bind("<Button-3>", menu_popup)
button = ttk.Button(win, text="Quit", command=win.destroy)
button.pack()
mainloop()
uj5u.com熱心網友回復:
對于相應的事件,回呼應該在哪個widget上執行是由你呼叫bind的widget決定的(還有系結的級別*)。因此,如果你想讓事件在texty中被識別,那么就對它應用系結。
texty.bind("< Button-3>", menu_popup)
* 有一個bind_all,無論哪個widget有焦點或被呼叫都會執行。閱讀54.1. 系結的級別以獲取更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319435.html
標籤:
上一篇:我在使用JakartaEE,做了一個"helloworld"的restfulAPI,無法通過訪問URL獲得回傳字串。
