2012-05-14 14 views
0

Tkinterに問題があります。これは私が初めてそれを使用していると私はあなたが私を助けることができるかと思います。私は欲しいもののGUIを書いていますが、クラスに入れることはできません。Python-Tkinter GUI

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() 

これをクラスControllerにしたいと考えています。これは可能ですか?

+4

http://docs.python.org/library/tkinter.html#a-simple-hello-world-program –

+0

私はあなたがまだジョエルが提供されるリンク後のトラブルを持っているかどうかを知るために興味があります。それはあなたの質問のためにかなりまっすぐです。 – jdi

+0

私は実際にGUIのクラスを作成することができました。 –

答えて

2

ここでコードはクラスとして再実装されています。私は "Tkinter import *から"を取り除く自由を取って、それを "tkとしてimport Tkinter"に置き換えました。 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()