我需要从我的“ makeEntry”类恰好是textvariables访问信息。我尝试了make get函数,但是我在python中读到它是没有必要的。
def temp():
print(e_full_name.get_text())
class makeEnetry:
def __init__(self, i_parent, i_width, i_row, i_column, i_text):
test.set(i_text)
test = StringVar()
entry = Entry(master = i_parent, width = i_width, textvariable = test)
entry.grid(row = i_row, column = i_column, padx = 5, pady =5 )
def get_text(self):
return self.test.get()
我试图将我的test = StringVar()移到函数上方,只是在类中将其引用到另一个函数中,但它不起作用。我是python的新手,我不知道自己做错了什么。
def temp():
print(e_full_name.get_text())
class makeEnetry:
test = StringVar()
def __init__(self, i_parent, i_width, i_row, i_column, i_text):
test.set(i_text)
.
.
.
我已经写了一个可行的解决方案。正如我在评论中提到的那样,该test
变量应为实例变量(self
)。为了更好的理解,我在示例代码中添加了一些注释。
码:
import tkinter as tk
def temp():
print(entry_inst.get_text()) # Printing the result of "get_text" method of "entry_inst" object.
root = tk.Tk()
class makeEnetry:
def __init__(self, i_parent, i_width, i_row, i_column, i_text):
self.test = tk.StringVar()
self.test.set(i_text)
entry = tk.Entry(master=i_parent, width=i_width, textvariable=self.test)
entry.grid(row=i_row, column=i_column, padx=5, pady=5)
def get_text(self):
return self.test.get()
entry_inst = makeEnetry(root, 20, 1, 1, "TEST") # Creating an object from "makeEnetry" class
button = tk.Button(root, text="PUSH ME", command=temp) # Creating a button which will call the "temp" function
button.grid(row=2, column=1)
tk.mainloop()
GUI:
控制台输出:
仅供参考:我已更改输入框中的文本,然后单击按钮。
>>> python3 test.py
TEST
TEST1
TEST12
TEST123
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句