2010-08-14 48 views
16

Tôi muốn có một Menu thả xuống trong Tkinter, bao gồm phím tắt được liên kết với lệnh này. Điều này có thể không?Menu thả xuống Tkinter có phím tắt?

Làm cách nào để thêm dòng gạch chân dưới một ký tự nhất định, để cho phép Alt-F-S (Tệp-> Lưu)?

Trả lời

34
import tkinter as tk 
import sys 

class App(tk.Tk): 

    def __init__(self): 
     tk.Tk.__init__(self) 
     menubar = tk.Menu(self) 
     fileMenu = tk.Menu(menubar, tearoff=False) 
     menubar.add_cascade(label="File", underline=0, menu=fileMenu) 
     fileMenu.add_command(label="Exit", underline=1, 
          command=quit, accelerator="Ctrl+Q") 
     self.config(menu=menubar) 

     self.bind_all("<Control-q>", self.quit) 

    def quit(self, event): 
     print("quitting...") 
     sys.exit(0) 

if __name__ == "__main__": 
    app = App() 
    app.mainloop() 
+0

Cảm ơn bạn, làm thế nào bạn thấy? – skeggse

+8

@ CMC: Tôi không tìm thấy nó, tôi biết điều đó. Tôi đã làm Tk phát triển với Tcl từ năm '95 và dịch kiến ​​thức đó sang python là rất thẳng về phía trước. –

+0

Ồ, được rồi. Ngoài ra, làm thế nào tôi sẽ nhấn mạnh một mục menu nhân vật? selection_present trả về True/False, nhưng tôi muốn một cái gì đó giống như 2-tuple chứa các giá trị bắt đầu và kết thúc, hoặc văn bản đã chọn. – skeggse

-1

lẽ

from tkinter import * 
import tkinter.filedialog as filed 

root = Tk() 
root.title("My Python Tkinter Application") 
root.minsize(800,600) 

def openfile(): 
    fn = filed.askopenfilename(filetypes=[("Text Files","*.txt")], title="Open File") 
    f = open(fn, "r").read() 
    print(f) 

def init(): 
    menu = Menu(root) 
    filemenu = Menu(menu) 
    filemenu.add_command(label="Open (⌘O)", command=openfile) 
    menu.add_cascade(label="File", menu=filemenu) 
    root.config(menu=menu) 
def key(): 
    print("Key Pressed: "+repr(event.char)) 
root.bind("<Key>", key) 
Các vấn đề liên quan