0

我在使用 Tkinter 时遇到问题。这是我第一次使用它,我想知道你是否可以帮助我。我已经写了我想要的图形用户界面,但我不能把它变成一个类,有人可以帮助我吗?

import datetime
from Tkinter import *
import tkMessageBox
import tkFileDialog

root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open rooms file")
filemenu.add_command(label="Save rooms file")
filemenu.add_command(label="Exit")
menubar.add_cascade(label="File",menu = filemenu )
editmenu = Menu(menubar)
editmenu.add_command(label="Undo")

frame1 = Frame(root, bg="white", height=365)
frame1.pack(side=TOP, fill=BOTH, padx=2)

frame2 = Frame(root)
frame2.pack()

addguest = Button(frame2, text="Add Guest",)
addguest.pack(side=LEFT, padx=10, pady=10)

update = Button(frame2, text="Update Guest")
update.pack(side=LEFT, padx=10,pady=10)

remove = Button(frame2, text="Remove Guest")
remove.pack(side=LEFT, padx=10,pady=10)

root.title("Rooms manager")
root.geometry("800x410+75+75")
root.config(menu=menubar)
root.mainloop()

我想把它变成类控制器。这可能吗?

4

1 回答 1

2

这是您作为类重新实现的代码。我冒昧地删除了“from Tkinter import *”并将其替换为“import Tkinter as tk”。IMO 这是导入 Tkinter 的一种更安全、更易于维护的方式。

import datetime
import Tkinter as tk
import tkMessageBox
import tkFileDialog

class ExampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        menubar = tk.Menu(self)
        filemenu = tk.Menu(menubar, tearoff=0)
        filemenu.add_command(label="Open rooms file")
        filemenu.add_command(label="Save rooms file")
        filemenu.add_command(label="Exit")
        menubar.add_cascade(label="File",menu = filemenu )
        editmenu = tk.Menu(menubar)
        editmenu.add_command(label="Undo")

        frame1 = tk.Frame(self, bg="white", height=365)
        frame1.pack(side=tk.TOP, fill=tk.BOTH, padx=2)

        frame2 = tk.Frame(self)
        frame2.pack()

        addguest = tk.Button(frame2, text="Add Guest",)
        addguest.pack(side=tk.LEFT, padx=10, pady=10)

        update = tk.Button(frame2, text="Update Guest")
        update.pack(side=tk.LEFT, padx=10,pady=10)

        remove = tk.Button(frame2, text="Remove Guest")
        remove.pack(side=tk.LEFT, padx=10,pady=10)

        self.title("Rooms manager")
        self.geometry("800x410+75+75")
        self.config(menu=menubar)

if __name__ == "__main__":
    app = ExampleApp()
    app.mainloop()
于 2012-05-14T14:08:01.673 回答