结合Tkirnet模块

时间:2017-05-18 18:31:45

标签: python python-2.7 tkinter

我创建了一个代码,用于创建一个菜单栏,其中包含带有文件,编辑和关于menubuttons的菜单栏以及一个拖放按钮。

我想为File,Edit和About按钮创建单独的模块file.py edit.py和about.py,然后将它们导入到一个文件中,并运行如何制作这样的模块。

    from Tkinter import *
    def donothing():
       filewin = Toplevel(root)
       button = Button(filewin, text="Do nothing button")
       button.pack()

    root = Tk()
    menubar = Menu(root)
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="Exit", command=root.quit)
    menubar.add_cascade(label="File", menu=filemenu)
    editmenu = Menu(menubar, tearoff=0)
    editmenu.add_command(label="Setting", command=donothing)
    menubar.add_cascade(label="Edit", menu=editmenu)
    aboutmenu = Menu(menubar, tearoff=0)
    aboutmenu.add_command(label="Help", command=donothing)
    menubar.add_cascade(label="About", menu=aboutmenu)
    root.config(menu=menubar)
    root.mainloop()

1 个答案:

答案 0 :(得分:0)

以下是使用函数执行此操作的方法。请记住,可以将函数移动到另一个python模块,然后您可以导入该函数。

from tkinter import *

def donothing():
    pass

root = Tk()
menubar = Menu(root)
root.config(menu=menubar)
def fileMenu():
    filemenu = Menu(menubar, tearoff=0)
    filemenu.add_command(label="Exit", command=root.quit)
    menubar.add_cascade(label="File", menu=filemenu)

def editMenu():
    editmenu = Menu(menubar, tearoff=0)
    editmenu.add_command(label="Setting", command=donothing)
    menubar.add_cascade(label="Edit", menu=editmenu)

def aboutMenu():
    aboutmenu = Menu(menubar, tearoff=0)
    aboutmenu.add_command(label="Help", command=donothing)
    menubar.add_cascade(label="About", menu=aboutmenu)

fileMenu()
editMenu()
aboutMenu()

root.mainloop()

如果您有3个独立模块(file.py,edit.py,about.py)上的功能,您可以像这样导入它们。

from tkinter import *
from file import fileMenu
from edit import editMenu
from about import aboutMenu

请记住,您可能需要在单独的文件中处理一些因变量。请注意,如果您这样做,将需要所有文件中的菜单栏=菜单(根)。

经过一些测试后,我能够将所有功能移动到一个单独的模块并导入它们但不是没有问题。我只导入了测试它的函数,但我相信最好将这些函数放入一个类中,并调用类中的每个方法来创建每个菜单项。