【发布时间】:2015-12-11 14:17:19
【问题描述】:
我正在尝试将条目变量链接到 Tkinter 中的函数。我有 16 个条目/变量要在我的函数中使用。但是,我正在努力处理条目和变量分配之间的接口。
我的代码:
import Tkinter
import pandas as pd
import numpy as np
class simulation_tk(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
c2_low =Tkinter.StringVar()
c3_low =Tkinter.StringVar()
ic4_low =Tkinter.StringVar()
nc4_low =Tkinter.StringVar()
ic5_low =Tkinter.StringVar()
nc5_low =Tkinter.StringVar()
neoc5_low =Tkinter.StringVar()
n2_low = Tkinter.StringVar()
c2_high =Tkinter.StringVar()
c3_high =Tkinter.StringVar()
ic4_high =Tkinter.StringVar()
nc4_high =Tkinter.StringVar()
ic5_high =Tkinter.StringVar()
nc5_high =Tkinter.StringVar()
neoc5_high=Tkinter.StringVar()
n2_high = Tkinter.StringVar()
self.entry = Tkinter.Entry(self, textvariable = c2_low).grid(column=0,row=1,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = c2_high).grid(column=0,row=2,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = c3_low).grid(column=0,row=3,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = c3_high).grid(column=0,row=4,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = ic4_low).grid(column=1,row=1,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = ic4_high).grid(column=1,row=2,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = nc4_low).grid(column=1,row=3,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = nc4_high).grid(column=1,row=4,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = ic5_low).grid(column=0,row=5,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = ic5_high).grid(column=0,row=6,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = nc5_low).grid(column=0,row=7,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = nc5_high).grid(column=0,row=8,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = neoc5_low).grid(column=1,row=5,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = neoc5_high).grid(column=1,row=6,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = n2_low).grid(column=1,row=7,sticky='EW')
self.entry = Tkinter.Entry(self, textvariable = n2_high).grid(column=1,row=8,sticky='EW')
self.resizable(False,False)
self.resizable(False,False)
button = Tkinter.Button(self,text=u"simulate")
button.bind("<Button-1>", simulation)
button.grid(column=3,row=9)
def simulation(self):
#code for this not included but uses all 16 entries/variable
if __name__ == "__main__":
app = simulation_tk(None)
app.title('Simulation')
app.mainloop()
我希望将我的条目的输入分配给一个变量,然后可以在单独的函数(模拟)中使用该变量
【问题讨论】:
-
将每个 em 分配给自己。像 self.c_low、self.c2_high 等。这样这个类中的其他函数将用“self”继承它们
-
如果您以不同的方式命名所有条目(self.entry1、self.entry2 等),您可能无论如何都不需要这些变量(ofc,您将需要移动
grids 到另一条线)。可以通过调用self.entry1.get()获取Entry的内容 -
通过 textvariable.get() 引用其文本变量,而不是条目本身,您可以从输入框中获取文本。
-
你没有道理。您必须将 textvariable 分配给具有 Tkinter.StringVar() ... 的变量。但我似乎无法在单独的函数 simulation() 中使用此变量
标签: python pandas tkinter tkinter-canvas