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

您的位置:首頁技術文章
文章詳情頁

python中Tkinter實現分頁標簽的示例代碼

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

Tkinter實現UI分頁標簽顯示:

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

python中Tkinter實現分頁標簽的示例代碼

第二頁Output

python中Tkinter實現分頁標簽的示例代碼

第三頁Ohter

python中Tkinter實現分頁標簽的示例代碼

第一頁的子標簽,分為三部分,每頁的內容獨立

python中Tkinter實現分頁標簽的示例代碼

python中Tkinter實現分頁標簽的示例代碼

源碼如下:

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()

到此這篇關于python中Tkinter實現分頁標簽的示例代碼的文章就介紹到這了,更多相關python Tkinter分頁標簽內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩黄色免费网站| 欧美a在线观看| 97精品视频在线看| 你懂的国产精品永久在线| 国产毛片精品| 国产精品一区三区在线观看| 一级欧美视频| 蜜臀久久久久久久| 蜜桃91丨九色丨蝌蚪91桃色| 日韩专区欧美专区| 亚洲精品人人| 中文字幕亚洲影视| 日韩一二三区在线观看| 日日夜夜免费精品| 青青草精品视频| 国产精选一区| 国产成人精品一区二区免费看京 | 久久永久免费| 国产精品密蕾丝视频下载| 国产精品最新| 国产+成+人+亚洲欧洲在线| 日韩欧美精品一区| 视频一区中文| 亚洲精品一二| 国产精品videossex| 97精品在线| 国产91精品对白在线播放| 国产农村妇女精品一区二区| 婷婷精品久久久久久久久久不卡| 国产精品欧美在线观看| 久久青青视频| 国产模特精品视频久久久久| 91精品国产自产在线丝袜啪| 麻豆91小视频| 久久精选视频| 美美哒免费高清在线观看视频一区二区| 日本精品久久| 国产精品二区不卡| 成人精品亚洲| 在线精品观看| 国内精品美女在线观看| 欧美日韩国产传媒| 日本国产亚洲| 日韩欧美午夜| 一区二区精彩视频| 国产一区二区亚洲| 尤物精品在线| 国产极品一区| 99视频精品全国免费| 午夜亚洲福利在线老司机| 国产日韩视频在线| а√天堂8资源在线| 麻豆精品91| 精品久久久中文字幕| 亚洲国产成人精品女人| 久久精品99国产国产精| 神马午夜久久| 欧美一区二区三区久久| 日韩av二区| 免费人成黄页网站在线一区二区| 精品国产午夜| 久久高清国产| bbw在线视频| 日本 国产 欧美色综合| 精品久久91| 天堂精品久久久久| 亚洲91久久| 国产精选一区| 午夜在线精品偷拍| 四季av一区二区凹凸精品| 亚洲一区二区av| 日韩中文在线播放| 国产亚洲久久| 亚洲精品在线观看91| 精品久久免费| 日本中文字幕不卡| 欧美日韩国产一区二区三区不卡 | 亚洲精品乱码久久久久久蜜桃麻豆| 精品国产成人| 一区二区三区四区日韩| 久久国产电影| 精品久久不卡| 欧美天堂一区| 亚洲欧洲一区二区天堂久久| 国产 日韩 欧美 综合 一区| 久久国产精品免费一区二区三区| 亚洲精品网址| 精品国产免费人成网站| 欧美日韩亚洲一区三区| 亚洲一区区二区| 久久久亚洲一区| 美日韩一区二区三区| 首页国产欧美日韩丝袜| 久久视频精品| 天堂av在线| 精品久久在线| 国产精品亚洲产品| 美国欧美日韩国产在线播放| 99精品视频在线| 精品视频自拍| 国产日韩免费| 日本不卡的三区四区五区| 一区免费视频| 影视先锋久久| 日韩福利一区| 久久精品免费看| 国产欧美在线| 香蕉久久一区| 在线观看视频免费一区二区三区| 精品一区三区| 激情婷婷欧美| 亚洲第一区色| 亚洲综合在线电影| 美女av在线免费看| 国产成人免费视频网站视频社区| 国产精品日本一区二区三区在线 | 视频在线观看91| 亚洲精品一区二区在线看| 欧美成人基地| 日韩成人三级| 中文在线免费视频| 成人三级高清视频在线看| 精品一区电影| 精品国内亚洲2022精品成人| 欧美黄色一区| 精品视频97| 精品国产18久久久久久二百| 国产精品99久久免费| 国产精品片aa在线观看| 国产精品va视频| 精品一区二区三区中文字幕视频| 麻豆精品久久| 韩日一区二区| 不卡福利视频| 欧美黄色网页| 免费毛片在线不卡| 首页亚洲欧美制服丝腿| 综合精品一区| 日韩精品一区二区三区中文在线| 日韩不卡在线观看日韩不卡视频| 91麻豆精品| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 欧美一区三区| 欧美~级网站不卡| 婷婷综合网站| 免费看的黄色欧美网站| 亚洲视频国产精品| 国产精品伊人| 日韩av片子| 免费成人网www| 美国三级日本三级久久99| 日韩精选在线| 麻豆精品久久久| 亚洲性色av| 亚洲一区国产| 国产精品一区二区免费福利视频| 精品久久网站| 欧美国产91| 亚洲一区二区三区四区电影 | 亚洲欧洲一区| 91欧美精品| 国产精品国产三级国产在线观看| 999国产精品| 亚洲天堂日韩在线| 老司机精品在线| 亚洲午夜一级| 亚洲精品激情| 精品国产91| 亚洲在线成人| 国产精品3区| 999精品色在线播放| 男人操女人的视频在线观看欧美| 久久精品97| 中文字幕系列一区| 亚洲精品第一| 精品久久亚洲| 热久久久久久久| 精品久久久久久久| 免费日韩精品中文字幕视频在线| 国产精品最新自拍| 成人av二区| 国产精品丝袜在线播放| 欧美1区免费| 日本视频一区二区| 久久久久国产精品一区二区| 蜜桃视频一区二区三区在线观看| 欧美1区2区3| 亚洲欧美日韩视频二区| 精品午夜久久| 亚洲影院天堂中文av色| 天堂√中文最新版在线| 日韩高清电影一区| 国产在线欧美| 你懂的亚洲视频| 日韩在线一区二区| 高潮一区二区| 亚洲精品进入| 欧美日韩精品在线一区| 国产精选久久| 久久亚洲美女|