我是python和编程的初学者。我正在尝试为我的 tkinter 程序创建一个看起来像(有点!)的模板空窗口。
我有 2 个脚本。一个用于主程序,另一个用于所有功能。我的想法是将带有函数的脚本导入主脚本并使用模板。
我的主要脚本在这里(main.py):
import module1 as md1
import Tkinter as tk
main_sizex=1280
main_sizey=750
main_posx=1
main_posy=1
main_title="Hello! This is a test"
main_titlesize=22
root=tk.Tk()
md1.Drag_Window(root, main_sizex, main_sizey, main_posx, main_posy, main_title, main_titlesize)
root.mainloop()
我的其他带有函数的脚本(module1.py):
import Tkinter as tk
def Drag_Window(name,sizex,sizey,posx,posy,title,titlesize):
def StartMove(event):
global x,y
x = event.x
y = event.y
def StopMove(event):
x = None
y = None
def OnMotion(event):
x1 = x
y1 = y
x2 = event.x
y2 = event.y
deltax = x2-x1
deltay = y2-y1
a = name.winfo_x() + deltax
b = name.winfo_y() + deltay
name.geometry("+%s+%s" % (a, b))
name.overrideredirect(True)
name.config(relief='solid',bd=1,bg='white')
name.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
frame=tk.Frame(name,width=sizex,height=80,relief='solid',bd=1,bg='black')
frame.place(x=0,y=0)
frame.bind("<ButtonPress-1>",StartMove)
frame.bind("<ButtonRelease-1>",StopMove)
frame.bind("<B1-Motion>",OnMotion)
label=tk.Label(frame,text=title,font=('calibri',(titlesize)),bg='black',fg='white')
label.place(x=10,y=15)
button=tk.Button(frame,text='EXIT',font=('calibri',(13)),bg='red',relief='flat',bd=1,width=8,pady=3,command=name.destroy)
button.place(x=1170,y=20)
frame2=tk.Frame(name,width=sizex,height=20,relief='solid',bd=1,bg='black')
frame2.place(x=0,y=sizey-20)
我的问题是我需要更改一些属性,例如模板bgcolor
中text
的一些标签小部件和按钮小部件。我知道我可以像这样在我的函数中添加我想要的附加属性
def Drag_Window(name,sizex,sizey,posx,posy,title,titlesize,propertyA,propertyB,...etc):
........
........
但我想知道是否可以直接从我的主脚本访问小部件属性?反正我能做到吗?
像这样的东西:
import module1 as md1
import Tkinter as tk
main_sizex=1280
main_sizey=750
main_posx=1
main_posy=1
main_title="Hello! This is a test"
main_titlesize=22
root=tk.Tk()
md1.Drag_Window(root, main_sizex, main_sizey, main_posx, main_posy, main_title, main_titlesize)
md1.button.config(bg='green') # <=
root.mainloop()