婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python中Tkinter實現(xiàn)分頁標簽的示例代碼

python中Tkinter實現(xiàn)分頁標簽的示例代碼

熱門標簽:佛山通用400電話申請 打印谷歌地圖標注 看懂地圖標注方法 蘇州人工外呼系統(tǒng)軟件 電話機器人貸款詐騙 電話外呼系統(tǒng)招商代理 淮安呼叫中心外呼系統(tǒng)如何 廣東旅游地圖標注 京華圖書館地圖標注

Tkinter實現(xiàn)UI分頁標簽顯示:

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


第二頁Output


第三頁Ohter


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



源碼如下:

import tkinter as tk

class TestBenchMaker:

    def __init__(self):
        self.TITLE = "Test"
        self.WIDTH = 500
        self.HEIGHT = 500
        self.parseDic = {}

    # Initial GUI
    def initialGUI(self):

        # Change tag
        def 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 type
        def 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 screen
        self.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 --> other
        frame2 = tk.Frame(window)
        frame2.pack(fill=tk.Y, pady=10)
        tag = tk.IntVar()
        tagWidth = 23
        tk.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 info
        frame3 = 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 setting
        width = 10
        frameInputSet = 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 --> custom
        type = 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 setting
        initalValue = 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 setting
        resetSet = 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 setting
        defaultValue = 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 --> h
        tk.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 value
        tk.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 --> Output
        frame4 = 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 --> Other
        frame5 = tk.Frame(window, height=350, bg="yellow")

        window.mainloop()

if __name__ == "__main__":
    tbm = TestBenchMaker()
    tbm.initialGUI()

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

您可能感興趣的文章:
  • python爬蟲之異常捕獲及標簽過濾詳解
  • python 如何獲取頁面所有a標簽下href的值
  • Python深度學習之圖像標簽標注軟件labelme詳解
  • Python 實現(xiàn)自動完成A4標簽排版打印功能
  • Python氣泡提示與標簽的實現(xiàn)
  • Python 生成VOC格式的標簽實例
  • 基于python3生成標簽云代碼解析
  • python 實現(xiàn)添加標簽&打標簽的操作

標簽:中山 畢節(jié) 江蘇 衡水 呼和浩特 股票 湖州 駐馬店

巨人網(wǎng)絡(luò)通訊聲明:本文標題《python中Tkinter實現(xiàn)分頁標簽的示例代碼》,本文關(guān)鍵詞  python,中,Tkinter,實現(xiàn),分頁,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python中Tkinter實現(xiàn)分頁標簽的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于python中Tkinter實現(xiàn)分頁標簽的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品国产免费久久| 欧美中文字幕一区二区三区亚洲| 国产综合色在线| 欧美一区二区三区公司| 三级久久三级久久| 91精品国产麻豆国产自产在线| 午夜精品在线视频一区| 欧美精品第1页| 韩国视频一区二区| 欧美国产丝袜视频| 99久久99久久精品免费看蜜桃| 亚洲欧洲av在线| 欧美日韩一级二级三级| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩一区二区三区av| 国产综合久久久久久鬼色| 中文字幕乱码日本亚洲一区二区 | 精品久久久久久久人人人人传媒| 久久精品久久精品| 欧美国产丝袜视频| 欧美人狂配大交3d怪物一区| 裸体在线国模精品偷拍| 国产精品久久久久久久久免费丝袜 | 成人精品国产一区二区4080| 1000部国产精品成人观看| 欧美色手机在线观看| 国模无码大尺度一区二区三区| 亚洲视频免费看| 日韩精品一区二区三区swag| 成人av网站免费观看| 丝袜美腿亚洲一区二区图片| 国产日产亚洲精品系列| 欧美视频中文字幕| 国产成人高清在线| 免费人成网站在线观看欧美高清| 国产精品久久国产精麻豆99网站| 欧美无砖专区一中文字| 岛国一区二区三区| 久久99国产精品免费网站| 最近日韩中文字幕| 久久亚洲二区三区| 欧美老女人在线| 色噜噜狠狠成人中文综合| 国产一区二区三区日韩| 奇米四色…亚洲| 亚洲国产精品久久一线不卡| 综合久久久久久久| 国产精品天天看| 精品国产91久久久久久久妲己| 欧美亚洲一区三区| 色综合天天综合在线视频| 国产乱码精品一区二区三| 日本不卡视频在线| 亚洲午夜在线电影| 综合色中文字幕| 久久久久久久久久久久电影| 欧美一二三在线| 欧美日韩精品是欧美日韩精品| 色综合欧美在线视频区| av男人天堂一区| 成人h动漫精品一区二区| 国精品**一区二区三区在线蜜桃| 免费成人美女在线观看.| 三级在线观看一区二区| 亚洲国产精品尤物yw在线观看| 亚洲理论在线观看| 日韩毛片高清在线播放| **网站欧美大片在线观看| 国产欧美综合在线| 久久久精品天堂| 国产精品色在线观看| 国产精品污污网站在线观看| 中文字幕在线不卡视频| 亚洲人成影院在线观看| 亚洲制服丝袜在线| 婷婷开心久久网| 国产真实乱子伦精品视频| 国产一区二区不卡| 国产999精品久久久久久绿帽| 成人精品视频一区二区三区| 一本大道久久精品懂色aⅴ| 91福利视频在线| 欧美一区二区三区不卡| 精品国产一区二区三区忘忧草 | 亚洲电影欧美电影有声小说| 亚洲综合一二区| 美女爽到高潮91| 国产综合成人久久大片91| 成人动漫视频在线| 一本色道a无线码一区v| 欧美一卡二卡在线观看| 久久久噜噜噜久噜久久综合| 最新久久zyz资源站| 亚洲成va人在线观看| 经典一区二区三区| 色香蕉成人二区免费| 91精品国产高清一区二区三区 | 国产在线国偷精品免费看| 国产乱码精品一区二区三区五月婷 | 国产精品久久久久aaaa| 香蕉成人啪国产精品视频综合网| 久久97超碰国产精品超碰| 91免费版在线| 久久网这里都是精品| 一区在线观看视频| 麻豆精品视频在线| 色播五月激情综合网| 久久中文娱乐网| 日韩在线a电影| 91热门视频在线观看| 精品国产乱码久久久久久浪潮| 亚洲欧美精品午睡沙发| 国模少妇一区二区三区| 欧美精品日日鲁夜夜添| 日韩一区有码在线| 狠狠狠色丁香婷婷综合久久五月| 日本高清不卡视频| 亚洲国产精品ⅴa在线观看| 美国一区二区三区在线播放| 色乱码一区二区三区88| 日本一区二区不卡视频| 久久国产精品一区二区| 欧美日韩精品三区| 亚洲成人中文在线| 99re这里只有精品6| 久久久久国产精品麻豆ai换脸| 人人超碰91尤物精品国产| 欧美性色综合网| 亚洲美女免费在线| 成人av资源网站| 国产日韩一级二级三级| 久久99蜜桃精品| 精品99999| 国产一区二区在线看| 亚洲一区二区成人在线观看| 日韩一区二区三区精品视频| 国产精品原创巨作av| 亚洲欧美日韩国产另类专区 | 99精品热视频| 亚洲成a人v欧美综合天堂| 91精品国产综合久久久蜜臀图片| 久久电影网电视剧免费观看| 亚洲欧洲国产日本综合| 日韩免费看的电影| 97se亚洲国产综合自在线不卡| 人妖欧美一区二区| 亚洲欧美日韩一区二区三区在线观看 | 久久99精品国产麻豆婷婷| 一区二区三区资源| 欧美经典三级视频一区二区三区| 色欲综合视频天天天| 精品亚洲欧美一区| 日韩精品免费专区| 亚洲欧美在线视频观看| 久久精品视频一区二区| 亚洲3atv精品一区二区三区| 日韩一区欧美二区| 日韩欧美国产wwwww| 国产一区二区三区久久悠悠色av| 精品国产91亚洲一区二区三区婷婷| 黄一区二区三区| 国产欧美精品日韩区二区麻豆天美| 不卡一区在线观看| 亚洲国产成人精品视频| 91精品国产综合久久精品图片| 精品一区二区免费视频| 国产精品色哟哟网站| 欧美日韩电影在线| 国产露脸91国语对白| 亚洲人成伊人成综合网小说| 欧美一区二区三区思思人| 国产精品亚洲视频| 亚洲午夜久久久久久久久电影网| 91麻豆精品国产91久久久更新时间 | 欧美电影免费观看高清完整版在线| 国产一区二区电影| 夜夜嗨av一区二区三区| 久久这里只有精品6| 91免费看视频| 国产在线精品一区二区夜色| 国产精品久久久久久久久快鸭| 91精品国产91综合久久蜜臀| 国产成人综合亚洲网站| 天天操天天干天天综合网| 久久久久久免费| 日韩一区二区在线观看| 懂色av一区二区三区蜜臀| 午夜av一区二区| 国产日本亚洲高清| 日韩视频免费观看高清在线视频| 国内成人免费视频| 日本不卡一区二区三区| 亚洲乱码一区二区三区在线观看| 欧美xxxx老人做受| a美女胸又www黄视频久久| 精品一区二区三区免费视频| 亚洲国产日韩a在线播放性色| 自拍偷拍亚洲激情| 337p日本欧洲亚洲大胆精品| 欧美一区三区四区|