【发布时间】:2020-04-04 20:47:17
【问题描述】:
感谢您对我的问题的任何帮助。
我将 Python 3 与 tkinter 一起使用,我在其中设置了多个页面,但是我试图在定义中调用一个类中的特定文本变量,并想知道是否有可能与我构建脚本的方式有关。
这是一个相当大的脚本,所以我不想在这里粘贴所有代码,我希望这已经足够了。
基本上这个类被称为 POIIN(tk.frame) 我正在尝试调用
class POPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.entryboxes()
def entryboxes(self):
# Entry boxes + variables
global voucher
voucher = IntVar()
entry_box3 = tk.Entry(self, textvariable=voucher, width=32, bg="lightgreen")
entry_box3.place(x=435, y=151)
我正在尝试通过在类之外执行以下操作来调用文本变量:
def do_mssql():
try:
if int(POPage.entryboxes(voucher).get()) > int(maxN):
voucherchktext()
elif int(voucher.get()) < int(minN):
voucherchktext()
else:
sql()
except:
vouchermissing()
但是它似乎在调用 IntVar() 并且我没有收到任何错误消息,(Python 很新) 基本上,我只需执行 int(voucher.get()) 就可以从另一个类(页面)中提取凭证。 我当然可以重命名 textvariable 并以这种方式调用它(我不介意),但如果有任何解决方法,那就太好了。
非常感谢您的帮助!
BR,
【问题讨论】:
-
你到底希望
POPage.entryboxes(voucher).get()做什么? -
抱歉不清楚,但我希望它获取文本变量值
-
这与
voucher.get()有何不同?您似乎在多个页面之间共享此全局voucher对象 - 因此也在多个tk.Entry对象之间共享。为什么它首先需要是全球性的? -
这是必需的,因为我将在另一个不在类中的函数中输出。我认为是我缺乏知识限制了我在这里,我可能会以更好的方式重写它。也许我可以把整个代码上传到某个地方让你看看?
-
如果你喜欢,你可以把整个代码贴在 pastebin 上,然后把它的链接贴在这里。不过,我不能保证我能在明天之前看到它。
标签: python class tkinter definition