2014-12-30 1 views
0

현재 작업하고있는 프로그램은 프로그램 창에 표시 할 사용자 입력이 필요합니다. 나는 인터넷과 stackoverflow, 내 문제에 대한 여러 가지 솔루션을 발견 연구했지만 아무도 작동하는 것. 필자의 목표는 Python의 tkinter 입력 위젯을 통해 사용자로부터 입력을 받고 새 레이블에 결과를 표시하는 것입니다. 처음 상자와 입력 상자를 꺼내는 반면 프로그램은 대답에서 내 시도를 거부합니다.Python의 tkinter 입력 위젯에서 입력을 받아서 라벨에 표시합니다.

내 목표를 달성하기 위해 어떤 전략, 코드/라이브러리 또는 조언이 있습니까?

내 기존 솔루션 :

.get() 
textvariable=self.entdat 

기존 코드는 다음과 같다 : 원함 적어도 실행하고 잘하면 당신이 원하는 방식으로하도록

from Tkinter import * 
import time 

class Input(Frame): 

    def __init__(self, parent=None, **kw): 
    Frame.__init__(self, parent, background="white") 
    self.parent = parent 
    self.initUI() 
    self.entdat = StringVar 
    self.timestr = StringVar() 
    self.makeWidgets() 

def makeWidgets(self): 
    self.ol = Label(text="Objective:") 
    self.ol.pack(side=TOP) 
    self.ew = Entry() 
    self.ew.pack(side=TOP) 
    self.b = Button(text="OK", command=self.clicked) 
    self.b.pack(side=TOP) 

def clicked(self): 
    self.entdat = self.ew.get() 
    self.dat = Label(textvariable=self.ew.get()) 
    self.dat.pack(side=TOP) 
    self.hide_Widget() 


def hide_Widget(event): 
    event.ew.pack_forget() 
    event.ol.pack_forget() 
    event.b.pack_forget() 

def main(): 
root = Tk() 
root.geometry("240x135+25+50") 
tm = Input(root) 
tm.pack(side=TOP) 

root.mainloop() 

if __name__ == '__main__': 
    main() 
+1

'self.initUI()'란 무엇입니까? 당신이 제공 한 코드에서 정의되지 않았습니다. – Marcin

+0

죄송합니다. 문제가있는 부분 만 포함했습니다. self.intitUI()는 parent.title을 "Input"으로 설정합니다. –

답변

0

나는 코드를 수정.

from Tkinter import * 

class Input(Frame): 
    def __init__(self, parent=None, **kw): 
     Frame.__init__(self, parent, background="white") 
     self.parent = parent 
     self.entdat = StringVar() 
     self.makeWidgets() 

    def makeWidgets(self): 
     self.ol = Label(text="Objective:") 
     self.ol.pack(side=TOP) 
     self.ew = Entry(textvariable=self.entdat) 
     self.ew.pack(side=TOP) 
     self.b = Button(text="OK", command=self.clicked) 
     self.b.pack(side=TOP) 

    def clicked(self): 
     self.dat = Label(self, textvariable=self.entdat) 
     self.dat.pack(side=TOP) 
     self.distroy_Widget() 


    def distroy_Widget(self): 
     self.ew.destroy() 
     self.ol.destroy() 
     self.b.destroy() 

def main(): 
    root = Tk() 
    root.geometry("240x135+25+50") 
    tm = Input(root) 
    tm.pack(side=TOP) 

    root.mainloop() 

if __name__ == '__main__': 
    main() 

희망이 있습니다.

+0

고마워,이게 내가 바라는거야. 당신이이 일을 할 시간이 걸릴 것이라는 것은 제게 큰 의미가 있습니다. 이제, 저를위한 프로그래밍으로 돌아 왔습니다! :-) –

+0

@Rick_Roll 걱정할 필요가 없습니다. 다행히 도울 수있어. – Marcin

관련 문제