我可以使用 tkinter 为单个页面创建 2 个模块吗?
can i create 2 module for a single page by using tkinter?
我想通过使用 Tkinter 制作一个页面,而且我想在 2 个模块中制作它。在那种情况下,我可以简化代码
我编写的代码是
模块 1 (a1.py)
from tkinter import *
from a2 import frame
root=Tk()
root.title("voccabulary journel")
root.geometry("700x450")
root.configure(bg='#ff8000')
frame()
root.mainloop()
模块 2(a2.py)
from tkinter import *
def frame():
Grid.rowconfigure(root,0,weight=1)
Grid.columnconfigure(root,0,weight=1)
Grid.columnconfigure(root,1,weight=3)
frame1=Frame(root,background='black')
frame1.grid(row=0,column=0,sticky='nsew')
frame2=Frame(root,background='white')
frame2.grid(row=0,column=1,sticky='nsew')
labeltry1=Label(frame1, text='testing')
labeltry1.pack()
labeltry2=Label(frame2,text='tersting')
labeltry2.pack()
我本可以在一个模块中编写,但我只想简化它..
无论如何我都会附上终端机的图片
有一个很好的规则:将所有值明确地作为参数发送。
这就是你的问题 - 在 frame()
中你使用了 root
而你没有将其作为参数发送。
使用:
a2.py
def frame(root):
# code
a1.py
frame(root)
这解决了您的问题并使代码更易读且更易于调试。
我想通过使用 Tkinter 制作一个页面,而且我想在 2 个模块中制作它。在那种情况下,我可以简化代码
我编写的代码是
模块 1 (a1.py)
from tkinter import *
from a2 import frame
root=Tk()
root.title("voccabulary journel")
root.geometry("700x450")
root.configure(bg='#ff8000')
frame()
root.mainloop()
模块 2(a2.py)
from tkinter import *
def frame():
Grid.rowconfigure(root,0,weight=1)
Grid.columnconfigure(root,0,weight=1)
Grid.columnconfigure(root,1,weight=3)
frame1=Frame(root,background='black')
frame1.grid(row=0,column=0,sticky='nsew')
frame2=Frame(root,background='white')
frame2.grid(row=0,column=1,sticky='nsew')
labeltry1=Label(frame1, text='testing')
labeltry1.pack()
labeltry2=Label(frame2,text='tersting')
labeltry2.pack()
我本可以在一个模块中编写,但我只想简化它..
无论如何我都会附上终端机的图片
有一个很好的规则:将所有值明确地作为参数发送。
这就是你的问题 - 在 frame()
中你使用了 root
而你没有将其作为参数发送。
使用:
a2.py
def frame(root):
# code
a1.py
frame(root)
这解决了您的问题并使代码更易读且更易于调试。