我想更改标签标题作为步骤指示符。当前输出是根据第一个屏幕截图。现在,我想要一个选项卡被完全填充时,将其更改为绿色。如果其他标签未满,则其标题将变为黄色;如果其他标签未满,则其标题应为绿色。表示不同的颜色指示器作为选项卡标题。也应该是实时的。
def page2(n,zonenum):
Qlist=StringVar()
lst=tkWindow.grid_slaves()
for l in lst:
l.destroy()
def page1():
pass
def page3temp():
if pplnum0.get()=='':
messagebox.showwarning('Required','Fill Number of Peoples')
elif areanum0=='':
messagebox.showwarning('Required','Fill Area of Zone')
elif damarea0.get()=='':
messagebox.showwarning('Required','Fill Percentage of Damaged Area')
elif int(damarea0.get())>100:
messagebox.showwarning('Required','Maximum Damaged Percentage Cannot Be more than 100%')
elif existname0.get()=='':
messagebox.showwarning('Required','Fill Existing Number of Projects')
else:
page3(n,zonenum)
def clr():
pass
def morequarter():
popup=Toplevel()
global listro
listro=0
def adquarter():
global listro
global lbllst
qna=qname1.get()
lbllst.insert(listro,qna)
lbllst.see(listro)
lbllst.count+=1
listro +=1
qname1.set('')
def Remove():
global lbllst
item=lbllst.curselection()
lbllst.delete(item[0])
lbllst.count-=1
def Edit():
global lbllst
item=lbllst.get(lbllst.curselection())
qname1.set(item)
def apply():
popup.destroy()
q1Label = Label(popup,text="Quarter Names",font=('arial',10,'bold')).grid(row=0, column=0,padx=10,pady=5,sticky='w')
qEntry=Entry(popup,font=('arial',10,'bold'),textvariable=qname1).grid(row=0,column=1,padx=10,pady=5,sticky=E)
adq=Button(popup,text='Add Quarter',width=15,command=adquarter).grid(row=0,column=2,padx=10)
edq=Button(popup,text='Edit Quarter',width=15,command=Edit).grid(row=1,column=2,padx=10)
delq=Button(popup,text='Delete Quarter',width=15,command=lambda *args: Remove()).grid(row=2,column=2,padx=10)
global lbllst
lbllst=Listbox(popup,height=10,listvariable=Qlist)
lbllst.count=0
for i in range(lbllst.cget('height')-1):
lbllst.insert(END,'')
lbllst.grid(row=1,column=0,padx=5)
okBut=Button(popup,text='Apply',command=apply).grid(row=6,column=1,sticky='e',pady=10)
canBut=Button(popup,text='Cancel').grid(row=6,column=1,sticky='w',pady=10)
style = ttk.Style()
## img=ImageTk.PhotoImage(Image.open('error.png'))
global tabControl
tabControl = ttk.Notebook(tkWindow)
for i in range(zonenum):
globals()['qname'+str(i)] = StringVar()
globals()['pplnum'+str(i)] = StringVar()
globals()['areanum'+str(i)] = StringVar()
globals()['damarea'+str(i)] = StringVar()
globals()['existname'+str(i)] = StringVar()
def autoupdatehead():
global fgcol
global img
if Qlist.get()=='' and globals()['pplnum'+str(i)].get()=='' and areanum0.get()=='' and damarea0.get()=='' and existname0.get()=='':
fgcol='red'
img=PhotoImage(file='error.png')
elif Qlist.get()!='' and pplnum0.get()!='' and areanum0.get()!='' and damarea0.get()!='' and existname0.get()!='':
print('complete filled')
fgcol='green'
img=PhotoImage(file='success.png')
else:
print('something filled')
fgcol='yellow'
img=PhotoImage(file='ready.png')
style.configure("TNotebook.Tab",foreground=fgcol)
tabControl.after(500,autoupdatehead)
autoupdatehead()
style.theme_create("custom_tabs", parent="alt", settings={
"TNotebook.Tab": {
"configure": {"padding": [10, 10, 0, 0],'margin':10,'font':('arial',14,'bold'),'foreground':fgcol}
}})
style.theme_use("custom_tabs")
tabs=[]
for i in range(zonenum):
tab=ttk.Frame(tabControl)
tabs.append(tab)
tabControl.add(tabs[i],text='ZONE '+str(i+1),image=img,compound=BOTTOM)
tabControl.image=img
lblfrm = LabelFrame(tabs[i],height=400, width=400,bd=4,bg='#1e2842',font=('Dubai',12,'bold'),fg='#f7dabc',text="Enter Data for Zone Number ")
lblfrm.grid(row=1,column=1,padx=40,pady=20)
q1Label = Label(lblfrm,text="Quarter Names",font=('arial',10,'bold'),bg='#082543',fg='#f7dabc').grid(row=0, column=0,padx=10,pady=5,sticky='w')
moreqButton=Button(lblfrm,text="Add Quarters",command=morequarter)
moreqButton.grid(row=0,column=2)
pplLabel = Label(lblfrm,text="Total Number of People",font=('arial',10,'bold'),bg='#082543',fg='#f7dabc').grid(row=1, column=0,padx=10,pady=5,sticky='w')
pplnumEntry = Entry(lblfrm, textvariable=globals()["pplnum"+str(i)],width=40,bd=4).grid(row=1,columnspan=2, column=1,padx=10,pady=5)
areaLabel = Label(lblfrm,text="Area of Zone (km2)",font=('arial',10,'bold'),bg='#082543',fg='#f7dabc').grid(row=2, column=0,padx=10,pady=5,sticky='w')
areanumEntry = Entry(lblfrm, textvariable=globals()['areanum'+str(i)],width=40,bd=4).grid(row=2,columnspan=2, column=1,padx=10,pady=5)
damLabel = Label(lblfrm,text="Damaged Area Percentage",font=('arial',10,'bold'),bg='#082543',fg='#f7dabc').grid(row=3, column=0,padx=10,pady=5,sticky='w')
damareaEntry = Entry(lblfrm, textvariable=globals()['damarea'+str(i)],width=40,bd=4).grid(row=3,columnspan=2, column=1,padx=10,pady=5)
existLabel = Label(lblfrm,text="Existing of service and\nadministrative centers",font=('arial',10,'bold'),bg='#082543',fg='#f7dabc').grid(row=4, column=0,padx=10,pady=5,sticky='w')
existnameEntry = Entry(lblfrm, textvariable=globals()['existname'+str(i)],width=40,bd=4).grid(row=4,columnspan=2, column=1,padx=10,pady=5)
loginButton = Button(lblfrm, font=('arial',10,'bold'),text="Previous",width=6,command=page1).grid(row=5,ipadx=5, column=0,pady=10,padx=10)
loginButton = Button(lblfrm, font=('arial',10,'bold'),text="Clear",width=6,command=clr).grid(row=5,ipadx=5, column=1,pady=10,padx=5,sticky='e')
clrButton = Button(lblfrm, font=('arial',10,'bold'),text="Next",width=6,command=page3temp).grid(row=5, ipadx=5, column=2,pady=10,padx=10)
tabControl.pack()
if __name__=='__main__':
tkWindow = Tk()
width = 553
height = 343
screen_width = tkWindow.winfo_screenwidth()
screen_height = tkWindow.winfo_screenheight()
x = (screen_width/2) - (width/2)
y = (screen_height/2) - (height/2)
tkWindow.geometry("%dx%d+%d+%d" % (screen_width, screen_height, 0, 0))
tkWindow.resizable(0, 0)
tkWindow.title('Reconstruction of Liberated Iraqi Areas')
load = Image.open("bgnd_new.jpg")
render = ImageTk.PhotoImage(load)
img = Label(tkWindow, image=render)
img.image = render
tkWindow.iconbitmap('icon.ico')
img.place(x=0, y=0)
zonenum=3
n='Baghdad'
page2(n,zonenum)
tkWindow.mainloop()