我正在与tkinter
合作,并为我的项目设置了简单的应用程序。我的目标是从tk.Entry()
中的tk.LabelFrame()
中检索一个值(在此代码中groupbox
引用的变量中)。按钮找到groupbox
,代码也通过编译器。我想我的问题是:如何在LabelFrame中访问小部件及其值?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.master.title("Application Title")
# Introduce LabelFrame
self.groupbox = tk.LabelFrame(self, text="Parameters")
self.groupbox.grid(row=0, column=1, padx=5, pady=5)
# Test Label & Entry Widget
label = tk.Label(self.groupbox, text="label=")
label.grid(row=0, column=0, sticky="W")
entry = tk.Entry(self.groupbox)
entry.insert(0, default_value)
entry.grid(row = 0, column=1)
# Compile Button
button = tk.Button(self.groupbox, text="Compile", command=self.compile)
button.grid(row=1, column=1)
# Retrieve first Value (second Widget) from LabelFrame
def compile(self):
print(self.groupbox.entry.get(1))
if __name__ == '__main__':
figure = Application()
figure.pack()
figure.mainloop()
之所以这样做,是因为我想根据由按钮单击触发的tk.Entry()
值执行一些计算,该按钮包含在上述代码段建议的相同LabelFrame()
中(在原始代码中代码中有很多小部件,但这本质上是我当前问题的要点)。
答案 0 :(得分:1)
将entry
更改为self.entry
。
class Application(tk.Frame):
def __init__(self, master=None):
....
self.entry = tk.Entry(self.groupbox)
self.entry.insert(0, "default_value")
self.entry.grid(row = 0, column=1)
...
# Retrieve first Value (second Widget) from LabelFrame
def compile(self):
print(self.entry.get())