如何从Python3.6中tkinter下的模块继承变量

2024-04-20 16:33:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者。问:我有两个模块,我想使用一个变量(自变量)这在module2中存在,但我仍然有相同的错误(AttributeError:type对象'mod2Class'没有属性'vari'),甚至尝试另一种方法。你知道吗

我将用以下代码对此进行示例:

你知道吗========= #模块2:

import tkinter as tk

class mod2Class:

    def __init__(self, parent):

        self.vari=tk.StringVar()
        self.vari.set('Variable Value')

        self.txtBox2 = tk.Text(parent, width=10)
        self.txtBox2.grid(row=0, column=2)

模块1

import tkinter as tk
from mod2 import mod2Class

class mod1Class(mod2Class):

    def __init__(self,parent):
        mod2Class.__init__(self,parent)

        self.lbl1=tk.Label(parent,width=15,text=mod2Class.vari)
        self.lbl1.grid(row=0,column=0)

s=tk.Tk()
n=mod1Class(s)
s.mainloop()

=========================

如果有任何帮助,我将不胜感激


Tags: 模块importselfinittkinterdefaswidth
1条回答
网友
1楼 · 发布于 2024-04-20 16:33:38

在模块1中,您将所需的变量称为:

mod2Class.self.vari

您调用了mod2Class.init(),self作为第一个参数,这使模块1中的类成为mod2Class的实例。您还希望从变量中获取文本,而不仅仅是对象。因此,将该行更改为:

self.vari.get()

经过一点研究,我已经证实了我的另一个想法,那就是需要向StringVar传递一个Tk窗口。创建时尝试传递父窗口自变量. 你知道吗

相关问题 更多 >