2012-04-02 3 views
0

GUI에서 Tkinter with Python으로 시작합니다. 게임용 그래픽 인터페이스를 만들려고합니다. 내가이 프로그램을 실행하려고 할 때 :python 2.7 : Tkinter 오류 : #TclError가 여기에 올 수 있습니다.

import Tkinter as tk 
    import ttk 

    def create_frame(parent, col, r, st): 
     frame = ttk.Frame(parent, padding="3 3 12 12") 
     frame.grid(column=col, row=r, sticky=st) 
     frame.columnconfigure(0, weight=1) 
     frame.rowconfigure(0, weight=1) 
     return frame 
    def create_frame(parent, col, r, st): 
     frame = ttk.Frame(parent, padding="3 3 12 12") 
     frame.grid(column=col, row=r, sticky=st) 
     frame.columnconfigure(0, weight=1) 
     frame.rowconfigure(0, weight=1)  
     return frame 
    def create_entry(parent, col, r, st, w): 
     val = tk.StringVar() 
     entry = ttk.Entry(parent, width=w, textvariable=val) 
     entry.grid(column=col, row=r, sticky=st) 
     return val, entry 
    def create_label(parent, col, r, st, text = None): 
     if text == None: 
      val = tk.StringVar() 
      label = ttk.Label(parent, textvariable = val) 
     else: 
      label = ttk.Label(parent, text = text) 
      val = None 
     label.grid(column = col, row = r, sticky = st) 
     return val 
    def create_button(parent, col, r, st, com, text): 
     button = ttk.Button(parent, text = text, command = com) 
     button.grid(column = col, row = r, sticky = st) 
    def create_main_window(): 
     root = tk.Tk() 
     root.title("Scrabble") 
     main_frame = create_frame(root, col = 0, r = 0, st = (tk.N, tk.W,  tk.E, tk.S)) 
     feet_val, feet_entry = create_entry(main_frame, col = 2, r = 1, st =  (tk.W, tk.E), w = 7) 
     meters = create_label(main_frame, col = 2, r = 2, st = (tk.W, tk.E)) 
     create_label(main_frame, text = "feet", col = 3, r = 1, st = tk.W) 
     create_label(main_frame, text = "is equivalent to", col = 1, r = 2,  st = tk.E) 
     create_label(main_frame, text = "meters", col = 3, r = 2, st = tk.W) 
     for child in main_frame.winfo_children(): 
      child.grid_configure(padx=5, pady=5) 

     feet_entry.focus() 
     root.mainloop() 

    create_main_window() 

을하지만이 오류 메시지가 나타납니다

File "Scrabble.py", line 175, in <module> 
    create_main_window() 
    File "Scrabble.py", line 160, in create_main_window 
    main_frame = create_frame(root, col = 0, r = 0, st = (tk.N, tk.W, tk.E,  tk.S)) 
    File "Scrabble.py", line 131, in create_frame 
    frame = ttk.Frame(parent, padding="3 3 12 12") 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib- tk/ttk.py", line 761, in __init__ 
    Widget.__init__(self, master, "ttk::frame", kw) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib- tk/ttk.py", line 559, in __init__ 
    _load_tile(master) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib- tk/ttk.py", line 47, in _load_tile 
    master.tk.eval('package require tile') # TclError may be raised here 
_tkinter.TclError: can't find package tile 

어떻게해야합니까를? Tkinter로 시작할 때 나에게 줄 조언이 있습니까? 미리 감사드립니다. MFF

답변

4

표시된 경로를 기반으로하면 OS X에서 python.org Python 2.7을 사용하고있는 것 같습니다. 사용중인 OS X 버전과 사용한 Python 설치 프로그램에 따라 Tcl/Tk 버전은 그 전신 인 ttk 나 타일은 포함되지 않습니다. 64-/32-bit Python 2.7 (버전 라인이 GCC 4.2.1라고 할 것입니다)을 사용한다면, here에서 ActiveState Tcl/Tk 8.5를 설치하십시오. python.org 32 비트 전용 설치 프로그램 (GCC 4.0.1)을 사용하는 경우 ActiveState Tcl/Tk 8.4를 설치하십시오. Mac OS X Python 설치 프로그램과 Tcl/Tk 버전 here에 대한 자세한 정보가 있습니다.

+0

실제로 저는 MAC OS X Python 설치 프로그램과 Tcl/Tk 버전에 대한 정보를 배웠습니다. 드디어 내 os에 맞는 파이썬을 설치했습니다 :) 고마워요! –