首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Python3.5中的Tkinter将类值传递给另一个类

使用Python3.5中的Tkinter将类值传递给另一个类
EN

Stack Overflow用户
提问于 2016-01-25 06:27:23
回答 1查看 1.6K关注 0票数 0

我有以下代码(实际程序的示例):

代码语言:javascript
运行
AI代码解释
复制
from tkinter import *
def class1(Frame)

    def nv(self,x):
        self.vent=Toplevel(self.master)
        self.app=class2(self.vent)
        self.value=x

    def __init__(self,master):
        super().__init__(master)
        self.master=master
        self.frame=Frame(self.master)
        self.btn=Button(self, text="example", command=lambda: self.nw(1))
        self.btn.pack()
        self.pack()

def class2(Frame):
    def __init__(self, master):
        super().__init__(master)
        self.master=master
        self.frame=Frame(self.master)
        self.value=class1.nw.value.get()
root= Tk()
marco=Frame(root)
marco.pack
lf=class1(marco)
root.mainloop()

最后一部分是问题所在,对于这个问题,我不能正确地使用.get(),我希望在创建新窗口时得到x的值。我使用lambda来执行带有参数的命令。所以问题是,是否有一种方法可以让我访问第2类中x的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-25 07:20:02

在使用tkinter时,您似乎对类的用法感到非常困惑。super()不应该像解释的here那样与tkinter一起使用,在声明类时应该使用class关键字,而不是def.get()tkinter变量类(如tkinter.IntVartkinter.StringVar等)的一种方法,因此在您给出的示例中不需要这样做。

您需要的是Frame中的函数,您试图从(nv)中获取x的值,然后将该值解析为子Frame中的__init__方法。

这是我的解决方案:

代码语言:javascript
运行
AI代码解释
复制
from tkinter import *

class Class1(Frame):

    def nv(self,x):
        self.vent = Toplevel(self.master)
        self.app = Class2(self.vent,x)

    def __init__(self,master):
        Frame.__init__(self,master)
        self.master = master
        self.btn = Button(self, text="example", command=lambda: self.nv(1))
        self.btn.pack()
        self.pack()

class Class2(Frame):

    def __init__(self, master, x):
        Frame.__init__(self,master)
        self.master=master
        self.frame=Frame(self.master)
        self.x_text = Label(self, text=str(x))
        self.x_text.pack()
        self.pack()

root = Tk()
marco = Frame(root)
marco.pack()
lf = Class1(marco)
root.mainloop()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34994991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档