从另一个文件的类导入文本框时出现参数错误:NameError:名称“master”未定义

问题描述 投票:0回答:1

我无法从另一个文件中的类获取文本框。在

here.py
文件中,我应该调用文本框,但文本框位于
Page2
文件的
x.py
类中

here.py
文件中我写道:
if condition >= x.Page2().textbox

但我收到错误:

TypeError: Page2.__init__() missing 2 required positional arguments: 'master' and 'myclick'

显然,这意味着

Page2
master
myclick
主题,如您所见

x.py

class Page2(tk.Frame):
     def __init__(self, master, myclick, **kw):
         super().__init__(master, **kw)

         self.textbox = ttk.Entry(self, width=7)
         self.textbox.place(x=420, y=30)

因此,在文件

here.py
中,我尝试编写
if condition >= x.Page2(master, myclick).textbox
,但收到错误:
NameError: name 'master' is not defined
master
与我无关,但它只是 Python 在 def init

的经典用法中用来表示主窗口的参数

我该如何修复它?

注意:我不知道知道是否重要,但是

myclick
位于
main.py
文件中,并且是一个函数

python python-3.x class tkinter python-import
1个回答
0
投票

正如评论中提到的,您尚未定义

master
来传递给
x.Page2

您需要定义

master
(或
root
,如
tkinter
文档中所示:https://docs.python.org/3/library/tkinter.html#a-hello-world-program ),然后才能将其传递给
x.Page2
的构造函数。

类似:

root = Tk()
if condition >= x.Page2(root, myclick).textbox:
    ...
© www.soinside.com 2019 - 2024. All rights reserved.