如何解决使用ttk笔记本的标签标题作为自定义步骤指示符
我想更改标签标题作为步骤指示符。当前输出是根据第一个屏幕截图。现在,我想要一个选项卡被完全填充时,将其更改为绿色。如果其他标签未满,则其标题将变为黄色;如果其他标签未满,则其标题应为绿色。表示不同的颜色指示器作为选项卡标题。也应该是实时的。
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,'bold'),textvariable=qname1).grid(row=0,column=1,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',command=Edit).grid(row=1,padx=10)
delq=Button(popup,text='Delete Quarter',command=lambda *args: Remove()).grid(row=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,padx=5)
okBut=Button(popup,text='Apply',command=apply).grid(row=6,sticky='e',pady=10)
canBut=Button(popup,text='Cancel').grid(row=6,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,0],'margin':10,'font':('arial',14,'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,fg='#f7dabc',text="Enter Data for Zone Number ")
lblfrm.grid(row=1,padx=40,pady=20)
q1Label = Label(lblfrm,bg='#082543',fg='#f7dabc').grid(row=0,sticky='w')
moreqButton=Button(lblfrm,text="Add Quarters",command=morequarter)
moreqButton.grid(row=0,column=2)
pplLabel = Label(lblfrm,text="Total Number of People",fg='#f7dabc').grid(row=1,sticky='w')
pplnumEntry = Entry(lblfrm,textvariable=globals()["pplnum"+str(i)],width=40,bd=4).grid(row=1,columnspan=2,pady=5)
areaLabel = Label(lblfrm,text="Area of Zone (km2)",fg='#f7dabc').grid(row=2,sticky='w')
areanumEntry = Entry(lblfrm,textvariable=globals()['areanum'+str(i)],bd=4).grid(row=2,pady=5)
damLabel = Label(lblfrm,text="damaged Area Percentage",fg='#f7dabc').grid(row=3,sticky='w')
damareaEntry = Entry(lblfrm,textvariable=globals()['damarea'+str(i)],bd=4).grid(row=3,pady=5)
existLabel = Label(lblfrm,text="Existing of service and\nadministrative centers",fg='#f7dabc').grid(row=4,sticky='w')
existnameEntry = Entry(lblfrm,textvariable=globals()['existname'+str(i)],bd=4).grid(row=4,pady=5)
loginButton = Button(lblfrm,text="PrevIoUs",width=6,command=page1).grid(row=5,ipadx=5,pady=10,padx=10)
loginButton = Button(lblfrm,text="Clear",command=clr).grid(row=5,padx=5,sticky='e')
clrButton = Button(lblfrm,text="Next",command=page3temp).grid(row=5,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))
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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。