내 코드의 rackGUI.py
아래에있는 입력란이 정적/아무 것도 입력되지 않는 이유를 이해할 수 없습니다. Entry
개체가 모두 올바르게 인스턴스화되었다고 생각합니다. textvariable을 StringVar()
의 인스턴스로 지정했습니다. 내 직감은 create_button
인스턴스화에서 명령 인수에 문제가 있음을 알려주지 만 그 이유는 확실하지 않습니다. 나는 함수를 호출하지 않을 것이라고 생각했다.tkinter : 입력 위젯에 입력 할 수 없습니다.
메뉴에서 'New'
을 클릭하면 main.py
은 input_form()
을 성공적으로 호출하는 rackGUI.create()
을 성공적으로 호출합니다. 'create_button'
버튼을 클릭하면 쉘 'test'
에 인쇄되는 drawRack
이 성공적으로 호출됩니다. 또한 각 입력란에 대해 값 유형을 인쇄 한 테스트 (예 : 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