在
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)
据我所知,要访问
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)
这应该可以解决问题。您可以尝试一下并希望这会有所帮助吗