微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ttk笔记本的标签标题作为自定义步骤指示符

如何解决使用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()

screenshot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。