GUI

2017-02-14 11 views
0

からエントリの入力を格納することは、私はこのコードGUI

import math 
from tkinter import * 


def close_window(): 
    root.destroy() 

def fileName(): 
    filename = content.get() 
    return filename; 



root = Tk() 
content = StringVar() 

L2 = Label(root, text = "The Program").grid(row = 0, sticky = E) 


L1 = Label(root, text = "Enter filename").grid(row = 1, column = 0, sticky = E) 
E1 = Entry(root, bd = 5, textvariable = content).grid(row = 1, column = 1) 


B1 = Button(root, text = "Ok", command = fileName).grid(row = 2, column = 0) 
B2 = Button(root, text = "Quit", command = close_window).grid(row = 2, column = 1) 


root.mainloop() 

print(fileName()) 

を考えてみましょう今の問題は、私は私がE1に入る(私は後でそれに物事を行うことができます)コンテンツを保存したいですが、私はどのようにアクセスしますそれはGUIの "外側"ですか?

私が作ろうとしているのは、ユーザーがファイル名を入力した後、入力に関数群が実行され、それに基づいてテキストメッセージが生成されますが、入力にアクセスできません。 fileName は何も返しません。

+0

)これは、あなたが望んでいたが、今ではボタンのクリックに印刷し、あなたが(content.getする変数セットをファイル名があれば確認してください'fileName'関数です。関数にパラメータとしてコンテンツを渡してから参照してください。 – wpercy

答えて

0

ないあなたは、あなたの中にcontent` `を参照すべきではない

import math 
from tkinter import * 


def close_window(): 
    root.destroy() 

def fileName(): 
    filename = content.get() 
    return filename; 

def combine_funcs(*funcs): 
    def combined_func(*args, **kwargs): 
     for f in funcs: 
      f(*args, **kwargs) 
    return combined_func 

def prnt(): 
    print(content.get()) 

root = Tk() 
content = StringVar() 

L2 = Label(root, text = "The Program").grid(row = 0, sticky = E) 


L1 = Label(root, text = "Enter filename").grid(row = 1, column = 0, sticky = E) 
E1 = Entry(root, bd = 5, textvariable = content).grid(row = 1, column = 1) 


B1 = Button(root, text = "Ok", command = combine_funcs(fileName,prnt)).grid(row = 2, column = 0) 
B2 = Button(root, text = "Quit", command = close_window).grid(row = 2, column = 1) 


root.mainloop() 


print(fileName()) 
+0

それはStringVarとして格納するアイデアかもしれない –