1
我不明白爲什麼我的代碼中rackGUI.py
下的輸入框是靜態的/不會允許輸入任何內容。我相信所有Entry
對象都正確實例化。我將文本變量指定爲StringVar()
的實例。我的直覺告訴我,問題在於create_button
實例化中的命令參數,但我不確定爲什麼。我想通過設置command = lambda:function
該函數不會被調用。tkinter:無法進入條目小部件
單擊菜單中的'New'
,main.py
成功調用rackGUI.create()
,成功調用input_form()
。點擊按鈕'create_button'
成功呼叫drawRack
打印到外殼'test'
。我還添加了一個測試,其中打印了每個輸入框的值類型,即print type(rack_name.get())
,並且這成功返回'str'
類型。
所以主要的問題是輸入框是靜態的。
下面是我的代碼:
config.py
"""
config.py
"""
import Tkinter as tk
import tkMessageBox as tkmb
#setup
root = tk.Tk()
root.title("TLA Database Tool")
frame = tk.Frame(height = 300, width = 250)
frame.pack()
main.py
#main.py
from config import *
import rackGUI
def createRackTemplate():
rackGUI.create()
def loadRackTemplate():
rackGUI.load()
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar)
filemenu.add_command(label = "New", command = createRackTemplate)
filemenu.add_command(label = "Load", command = loadRackTemplate)
menubar.add_cascade(label = "File", menu = filemenu)
tkmb.showinfo("Welcome", "Under File click New to create a new rack template.\n\
Click load to load rack template.")
root.config(menu = menubar)
root.mainloop()
rackGUI.py
"""
rackGUI.py
"""
from config import *
def input_form():
form_frame = tk.Frame(frame)
form_frame.pack()
tk.Label(form_frame, text = "Rack Template Name (e.g., Knox Type 4)").pack()
rack_name = tk.Entry(form_frame, textvariable = tk.StringVar())
rack_name.pack()
tk.Label(form_frame, text = "Dimensions").pack()
tk.Label(form_frame, text = "#rack rows").pack()
num_rack_rows = tk.Entry(form_frame, textvariable = tk.StringVar())
num_rack_rows.pack()
tk.Label(form_frame, text = "#nodes per row").pack()
num_slots = tk.Entry(form_frame, textvariable = tk.StringVar())
num_slots.pack()
create_button = tk.Button(form_frame, text = "Create!",\
command = lambda: drawRack(rack_name, num_rack_rows, num_slots))
create_button.pack()
def drawRack(rack_name, num_rack_rows, num_slots):
print rack_name.get(), num_rack_rows.get(), num_slots.get()
def create():
input_form()
def load():
pass
它適用於我 - Linux Mint 16,Python 2.7.5 – furas
你是什麼意思:'不會允許輸入任何東西?你不能使用鍵盤,或者你不能使用'set(「text」)'在輸入中設置文本? – furas
在我試圖點擊框中,但文本光標不會顯示,所以我不能輸入任何東西。 – user3761743