我有两个类App(主类)和OptionsWin(创建顶层窗口的类)
import tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
#other methods
self.opt_win = OptionsWin(self.root,'Circle')
def show(self):
#get value of the RadioButton
pass
class OptionsWin():
def __init__(self, root, shape=None):
self.parent = root
self.root = tk.Toplevel(self.parent)
if shape == 'Circle':
self.create_circle_opt()
def create_circle_opt(self):
#Other Widgets
# Types of Circles
self.radVar = tk.IntVar()
self.radVar.set(0)
tk.Radiobutton(self.root, text='Equal Ellipse', variable=self.radVar,
value=0, command=None).grid(column=2, row=0, padx=10,
pady=5, sticky=tk.W)
tk.Radiobutton(self.root, text='Flat Ellipse', variable=self.radVar,
value=10, command=None).grid(column=2, row=1, padx=10,
pady=5, sticky=tk.W)
tk.Radiobutton(self.root, text='Tall Ellipse', variable=self.radVar,
value=20, command=None).grid(column=2, row=2, padx=10,
pady=5, sticky=tk.W)
我想将RadioButtons命令arg连接到App class show函数。 有没有什么办法或者更好的办法来组织我的班级结构来解决这个问题
因此,您将单选按钮的值存储在OptionsWin实例self.radVar的变量中。如果您在应用程序实例中有权访问该实例,则可以轻松地引用它。事实上这就是你想要的-
我们看不到self.opt\u win的定义。我猜这应该是
在这种情况下,您的show方法
如果我对opt\u win的猜测是错误的(可能是构造函数方法),那么答案的基础是
keep a reference to the OptionsWin instance so you can access the variables on it
编辑
为了能够从孩子身上引用父母,你可以-
然后你的应用程序构造器变成
让
OptionsWin
成为App
中的成员怎么样相关问题 更多 >
编程相关推荐