日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

瀏覽:91日期:2022-06-22 18:15:55

Tkinter實(shí)現(xiàn)UI分頁標(biāo)簽顯示:

Input頁,紅色部分為當(dāng)前Frame的位置,下半部分為第一頁的子標(biāo)簽;三頁標(biāo)簽的顯示內(nèi)容各不相同。實(shí)現(xiàn)分頁顯示的核心組件為Radiobutton,Radiobutton只有一個選項(xiàng)能夠生效,使用參數(shù)indicatoron=0能夠?qū)adiobutton顯示為Button的形狀,通過選定的Radiobutton將原有的Frame forget掉,同時,將預(yù)定的Frame pack,實(shí)現(xiàn)分頁的效果。使用時要將更換的組件放入一個Frame中,定義一個函數(shù)進(jìn)行選定Radiobutton的參數(shù)傳遞,實(shí)現(xiàn)切換。如果對Radiobutton使用bind的話,當(dāng)前選定的Radiobutton只能在下次事件觸發(fā)時生效,始終慢著一拍,所以使用command選項(xiàng)賦值標(biāo)簽切換函數(shù)。

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

第二頁Output

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

第三頁Ohter

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

第一頁的子標(biāo)簽,分為三部分,每頁的內(nèi)容獨(dú)立

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼

源碼如下:

import tkinter as tkclass TestBenchMaker: def __init__(self):self.TITLE = 'Test'self.WIDTH = 500self.HEIGHT = 500self.parseDic = {} # Initial GUI def initialGUI(self):# Change tagdef changeTag(tag): frame3.pack_forget() frame4.pack_forget() frame5.pack_forget() if tag == 0:frame3.pack(fill=tk.X) elif tag == 1:frame4.pack(fill=tk.X) elif tag == 2:frame5.pack(fill=tk.X)# Change typedef changeType(tag): clockSet.pack_forget() resetSet.pack_forget() customSet.pack_forget() if tag == 0:clockSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES, pady=5, padx=10) elif tag == 1:resetSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES, pady=5, padx=10) elif tag == 2:customSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES, pady=5, padx=10)window = tk.Tk()window.title(self.TITLE)# Place GUI on the center of screenself.ws = window.winfo_screenwidth()self.hs = window.winfo_screenheight()x = (self.ws / 2) - (self.WIDTH / 2)y = (self.hs / 2) - (self.HEIGHT / 2)window.geometry(’%dx%d+%d+%d’ % (self.WIDTH, self.HEIGHT, x, y))# Tag: 0 --> input; 1 --> output; 2 --> otherframe2 = tk.Frame(window)frame2.pack(fill=tk.Y, pady=10)tag = tk.IntVar()tagWidth = 23tk.Radiobutton(frame2, text='Input', command=lambda: changeTag(0), width=tagWidth, variable=tag, value=0, bd=1, indicatoron=0).grid(column=0, row=1)tk.Radiobutton(frame2, text='Output', command=lambda: changeTag(1), variable=tag, width=tagWidth, value=1, bd=1, indicatoron=0).grid(column=1, row=1)tk.Radiobutton(frame2, text='Other', command=lambda: changeTag(2), variable=tag, width=tagWidth, value=2, bd=1, indicatoron=0).grid(column=2, row=1)# frame3 --> Input# Signal infoframe3 = tk.Frame(window, height=300, bg='red')frame3.pack(side=tk.TOP, fill=tk.X)tk.Label(frame3, text=' Bit Input').pack(side=tk.TOP, anchor=tk.W)scroll = tk.Scrollbar(frame3)scroll.pack(side=tk.RIGHT, fill=tk.Y)self.inputBox = tk.Listbox(frame3, bd=1, selectmode=tk.SINGLE, yscrollcommand=scroll.set, height=8)self.inputBox.pack(side=tk.TOP, anchor=tk.NW, fill=tk.X, expand=tk.YES)scroll.config(command=self.inputBox.yview)# Input settingwidth = 10frameInputSet = tk.Frame(frame3, bg='white')frameInputSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)tk.Label(frameInputSet, text=' Input Setting').grid(row=0, column=0, pady=5)tk.Label(frameInputSet, text=' Signal Type', width=width).grid(row=1, column=0)# Tpye: 0 --> clock; 1 --> reset; 2 --> customtype = tk.IntVar()tk.Radiobutton(frameInputSet, text='Clock', variable=type, value=0, command=lambda:changeType(0), bd=1, indicatoron=0, width=width).grid(row=1, column=1, padx=10)tk.Radiobutton(frameInputSet, text='Reset', variable=type, value=1, command=lambda:changeType(1), bd=1, indicatoron=0, width=width).grid(row=1, column=2, padx=10)tk.Radiobutton(frameInputSet, text='Custom', variable=type, value=2, command=lambda:changeType(2), bd=1, indicatoron=0, width=width).grid(row=1, column=3, padx=10)# Clock settinginitalValue = tk.StringVar()initalValue.set('1’b0')cycle = tk.StringVar()converse = tk.StringVar()clockSet = tk.Frame(frame3, bg='white')#clockSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES, pady=5, padx=10)tk.Label(clockSet, text='Initial Value').grid(row=0, column=0, pady=5)tk.Radiobutton(clockSet, text='1’b0', variable=initalValue, value='1’b0').grid(row=0, column=1, padx=5)tk.Radiobutton(clockSet, text='1’b1', variable=initalValue, value='1’b1').grid(row=0, column=2, padx=5)tk.Label(clockSet, text='', width=10).grid(row=0, column=3)tk.Label(clockSet, text='Cycle').grid(row=0, column=4, pady=5, padx=10)tk.Entry(clockSet, textvariable=cycle, width=10, bd=2, bg='white').grid(row=0, column=5)# Reset settingresetSet = tk.Frame(frame3, bg='white')tk.Label(resetSet, text='Initial Value').grid(row=0, column=0, pady=5)tk.Radiobutton(resetSet, text='1’b0', variable=initalValue, value='1’b0').grid(row=0, column=1, padx=5)tk.Radiobutton(resetSet, text='1’b1', variable=initalValue, value='1’b1').grid(row=0, column=2, padx=5)tk.Label(resetSet, text='', width=10).grid(row=0, column=3)tk.Label(resetSet, text='Converse').grid(row=0, column=4, pady=5, padx=10)tk.Entry(resetSet, textvariable=converse, width=10, bd=2, bg='white').grid(row=0, column=5)# Custom settingdefaultValue = tk.IntVar()radixValue = tk.IntVar()radixValue.set(0)customSet = tk.Frame(frame3, bg='white')customSet.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES, pady=5, padx=10)# Radix 0 --> b, 1 --> o, 2 --> d, 3 --> htk.Label(customSet, text='Radix').grid(row=0, column=0, pady=5, padx=1)tk.Radiobutton(customSet, text='Binary', variable=radixValue, value=0).grid(row=0, column=1)tk.Radiobutton(customSet, text='Octal', variable=radixValue, value=1).grid(row=0, column=2)tk.Radiobutton(customSet, text='Decimal', variable=radixValue, value=2).grid(row=0, column=3)tk.Radiobutton(customSet, text='Hexadecimal', variable=radixValue, value=3).grid(row=0, column=4)# Initial valuetk.Label(customSet, text='Default Value').grid(row=1, column=0, pady=5, padx=10)tk.Radiobutton(customSet, text='default 0', variable=defaultValue, value=0).grid(row=1, column=1, padx=5)tk.Radiobutton(customSet, text='default 1', variable=defaultValue, value=1).grid(row=1, column=2, padx=5)tk.Label(customSet, text='Initial Value').grid(row=1, column=3, pady=5, padx=5)tk.Entry(customSet, textvariable=initalValue, width=12, bd=2, bg='white', justify=tk.RIGHT).grid(row=1, column=4)tk.Button(customSet, text='test', command=lambda :print(initalValue.get())).grid()# frame4 --> Outputframe4 = tk.Frame(window, height=350, bg='blue')tk.Label(frame4, text=' Bit Output').pack(anchor=tk.NW)scroll2 = tk.Scrollbar(frame4)scroll2.pack(side=tk.RIGHT, fill=tk.Y)self.outputBox = tk.Listbox(frame4, bd=1, selectmode=tk.SINGLE, yscrollcommand=scroll2.set, height=8, width=65)self.outputBox.pack(side=tk.LEFT)scroll2.config(command=self.outputBox.yview)# frame5 --> Otherframe5 = tk.Frame(window, height=350, bg='yellow')window.mainloop()if __name__ == '__main__': tbm = TestBenchMaker() tbm.initialGUI()

到此這篇關(guān)于python中Tkinter實(shí)現(xiàn)分頁標(biāo)簽的示例代碼的文章就介紹到這了,更多相關(guān)python Tkinter分頁標(biāo)簽內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂√8在线中文| 福利一区和二区| 西西人体一区二区| 夜夜嗨av一区二区三区网站四季av| 美女少妇全过程你懂的久久| 成人国产精品久久| 欧美成人基地| 在线亚洲自拍| 欧美中文一区| 精品视频高潮| 五月天久久网站| 亚洲三级av| 久久精品女人| 亚洲国产专区| 久久狠狠久久| 日韩欧美中文| 亚洲区国产区| 国产盗摄——sm在线视频| 黄色欧美日韩| 国产日产一区| 97欧美在线视频| 久久午夜精品| 麻豆成人av在线| 亚洲男女av一区二区| 日韩不卡一区二区| 色老板在线视频一区二区| 亚洲精品乱码| 日韩激情一区| 日本国产一区| 久久精品亚洲人成影院 | 99视频精品视频高清免费| 欧美另类综合| 国产乱码精品一区二区三区四区 | 国产在线不卡一区二区三区 | 久久精品影视| 国产精品日本一区二区三区在线| 私拍精品福利视频在线一区| 亚洲精品精选| 欧美日韩精品在线一区| 国产福利一区二区精品秒拍| 亚洲一区久久| 国产精品麻豆久久| 蜜桃久久精品一区二区| 亚洲电影有码| 欧美国产另类| 亚洲精品免费观看| 久久激情婷婷| 久久精品五月| 日韩av一区二区三区| 不卡一区综合视频| 成人国产精品久久| 欧美日韩一区自拍| 亚洲欧美成人综合| 啪啪国产精品| 麻豆91精品91久久久的内涵| 视频一区二区不卡| 亚洲爱爱视频| 国产精品一线| 日本视频在线一区| 日韩精品一级二级| 久久亚洲精品中文字幕蜜潮电影| 免费观看在线综合| 日日夜夜免费精品| 欧洲毛片在线视频免费观看| 精品网站999| 日本欧美大码aⅴ在线播放| 午夜精品一区二区三区国产| 中文在线中文资源| 欧美xxxx性| 国产情侣一区在线| 日韩一区二区三区精品视频第3页| 亚洲精品小说| 精品一区二区三区在线观看视频| 天堂va在线高清一区| 好吊一区二区三区| 99精品国产一区二区三区| 成人综合一区| 国产精品免费不| 欧美在线精品一区| 青青国产精品| 日本午夜精品| 国产色99精品9i| 国产乱码精品| 国产精品久久久网站| 国产乱子精品一区二区在线观看| 日韩激情一二三区| 欧美久久香蕉| 欧美一区精品| 国产精品免费99久久久| 国产精品22p| 荡女精品导航| 中文字幕色婷婷在线视频| 国产一区日韩| 亚洲精品福利电影| 久久久777| 136国产福利精品导航网址| 亚洲午夜视频| 日av在线不卡| 日本在线不卡视频一二三区| 日韩极品在线观看| 国产精品2023| 久久男人av资源站| 99久久久国产精品美女| 一本色道久久精品| 亚洲美女91| 国产精品久久久久久妇女| 久久精品国产99国产| 成人福利av| 欧美日韩国产亚洲一区| 水野朝阳av一区二区三区| 天堂va欧美ⅴa亚洲va一国产| 欧美一区成人| 国产一区二区三区日韩精品| 神马久久午夜| 亚洲夜间福利| 亚洲欧洲日韩| 精品精品久久| 91tv亚洲精品香蕉国产一区| 日韩一区二区免费看| 亚洲精品看片| 免费在线亚洲| 欧美成人高清| 日本亚洲最大的色成网站www| 免费在线欧美黄色| 99久久久久| 日本特黄久久久高潮| 国产中文在线播放| 亚洲欧美不卡| 久久的色偷偷| 91精品观看| 国产精品久久久久久模特| 欧美日韩一区二区综合| 综合国产视频| 国产一区二区三区天码| 亚洲在线观看| 精品视频高潮| 中文字幕av一区二区三区人| 国产精品毛片aⅴ一区二区三区| 成人三级高清视频在线看| 久久亚洲精品伦理| 卡一卡二国产精品| 日韩视频二区| 国产精品99精品一区二区三区∴| 91精品一区国产高清在线gif| 亚洲毛片在线免费| 中文字幕在线免费观看视频| 尤物精品在线| 国产午夜久久av| 波多野结衣一区| 精品一区二区三区四区五区| 久久国产精品毛片| sm久久捆绑调教精品一区| 亚洲香蕉久久| 亚洲播播91| 国产精品国码视频| 久久国产精品久久久久久电车| 久久精品亚洲| 日本一区二区中文字幕| 欧美+日本+国产+在线a∨观看| 国产精品白浆| 亚洲tv在线| 亚洲女同中文字幕| 欧美精品导航| 亚洲人成网77777色在线播放| 蜜桃视频在线网站| 国产精品久久久久久久免费软件| 久久国产福利| 在线日韩一区| 久久久久免费| 久久不卡国产精品一区二区| 免费观看在线综合色| 久久高清精品| 国产资源在线观看入口av| 国产日韩一区二区三免费高清| 久久国产精品毛片| 欧美日韩色图| 免费福利视频一区二区三区| 国产精品v一区二区三区| 蜜桃久久精品一区二区| 亚洲国产不卡| 日本精品不卡| 少妇久久久久| 国产综合色区在线观看| 精品国产一区二| 国产情侣久久| 国产色99精品9i| 青青草国产精品亚洲专区无| 亚洲一二av| 蜜桃91丨九色丨蝌蚪91桃色| 伊人久久婷婷| 欧美在线亚洲| 欧美日韩视频一区二区三区| 欧美精品日日操| 人在线成免费视频| 福利视频一区| 欧美亚洲日本精品| 91tv亚洲精品香蕉国产一区| 日本精品不卡| 激情婷婷久久| 蜜桃一区二区三区|