gpt4 book ai didi

python - 在classes/def中传递变量并在Tkinter中使用命令

转载 作者:行者123 更新时间:2023-12-01 05:59:35 25 4
gpt4 key购买 nike

以下代码(未显示全部内容)是我第一次尝试使用类。我主要尝试传递变量框,因为我希望从 Tkinter 中的 Entry 小部件检索值。

我似乎已经使该类正常工作,但我在通过 Tkinter 小部件中的“命令”从内部调用定义时遇到困难。

如果有人可以解释我写得不好的类代码出了问题以及是否可以获取框值,我会非常高兴。

如果这重复了之前的任何问题,我深表歉意。

class Start():
def ChoiceBox(self, choice):


column = 0
if choice == "Fixed":
choice_frame.grid_forget()
tkMessageBox.showinfo("Message", "No optimisation, value fixed.")
elif choice == "List":
i = [0, 1, 2, 3]

for i in i:
choice_title = Label(choice_frame, text='Value %g'% float(i+1), bg='white', borderwidth=0, width=0)
choice_title.grid(row=0, column=column+i, sticky="nsew", padx=1, pady=1)

self.box = Entry(choice_frame, bg='white', borderwidth=0, width=0)
self.box.grid(row=1, column=column+i, sticky="ew", padx=1, pady=1)

tkMessageBox.showinfo("Message", "Please fill in list values.")


elif choice == "Interval" or "Optimisation":
i = [0, 1]
choice_title1 = Label(choice_frame, text='Min Value', bg='white', borderwidth=0, width=0)
choice_title1.grid(row=0, column=column, sticky="nsew", padx=1, pady=1)
choice_title2 = Label(choice_frame, text='Max Value', bg='white', borderwidth=0, width=0)
choice_title2.grid(row=0, column=column+1, sticky="nsew", padx=1, pady=1)
for i in i:
box = Entry(choice_frame, bg='white', borderwidth=0, width=0)
box.grid(row=1, column=column+i, sticky="nsew", padx=1, pady=1)
tkMessageBox.showinfo("Message", "Enter Min/Max values.")


def StartBut(self):
if self.box.get() == "":
pass
else:
value = self.box.get()

list1 = OptionMenu(frame_table, variablelist, 'Fixed', 'List', 'Interval', 'Optimisation', command=Start.ChoiceBox)

but1 = Button(frame_but, text='Start', command=Start.StartBut)

更新:我现在收到错误:必须使用 Start 实例作为第一个参数调用“未绑定(bind)方法 'ChoiceBox()'”(改为使用 str 实例)。

最佳答案

def ChoiceBox(choice): 这应该是 def ChoiceBox(self, choice):

了解有关 Python 类如何工作的更多信息 here.

关于python - 在classes/def中传递变量并在Tkinter中使用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com