将小部件从另一个文件中的类导入到函数中。名称错误:名称“textbox1”未定义

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

function1
文件的
main.py
函数中,我想从
textbox1
文件的
textbox2
类导入
Page1(tk.Frame)
page1.py

我收到错误

NameError: name 'textbox1' is not defined
,因为
textbox1
textbox2
未正确导入。这是我正在使用的代码。我究竟做错了什么?怎么解决?

main.py

import tkinter as tk
from tkinter import ttk
from tkinter import *

from page1 import Page1

root = tk.Tk()
root.geometry('480x320')

style = ttk.Style()
style.theme_use('default') 
style.configure('TNotebook', tabposition='wn', background='white', tabmargins=0)
style.configure('TNotebook.Tab', background='white', width=10, focuscolor='yellow', borderwidth=0)
style.map('TNotebook.Tab', background=[('selected', 'yellow')])

nb = ttk.Notebook(root)
nb.place(x=0, y=70)
page1 = Page1(nb, width=492, height=905)
nb.add(page1, text='Tab 1', compound='left')

def function1(textbox1, textbox2):

    val_1 = "example 1"
    textbox1.insert(0, val_1)

    val_2 = "example 1"
    textbox2.insert(0, val_2)

button1 = Button(root, text="Button", command= function1(textbox1, textbox2))
button1.place(x=0, y=0)

root.mainloop()

page1.py

import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter import ttk
import tkinter as tk
import tkinter.font as tkFont
from tkinter import ttk

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

        textbox1 = ttk.Entry(self, width=7)
        textbox1.place(x=10, y=10)

        textbox2 = ttk.Entry(self, width=7)
        textbox2.place(x=10, y=40)
python python-3.x tkinter import python-import
1个回答
0
投票

据我所知,要访问

textbox1 and textbox2
中的 function1 函数中的
main.py
,您应该使用
self.textbox1
self.textbox2
将它们设为实例变量。

将 tkinter 导入为 tk 从 tkinter 导入 ttk

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

        self.textbox1 = ttk.Entry(self, width=7)
        self.textbox1.place(x=10, y=10)

        self.textbox2 = ttk.Entry(self, width=7)
        self.textbox2.place(x=10, y=40)

这应该可以解决问题。您可以尝试一下并希望这会有所帮助吗

© www.soinside.com 2019 - 2024. All rights reserved.