Python,Tkinter中的Getters

bazzuk123

我需要从我的“ 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:

GUI示例

控制台输出:

仅供参考:我已更改输入框中的文本,然后单击按钮。

>>> python3 test.py
TEST
TEST1
TEST12
TEST123

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章