最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python?tkinter中的Frame控件用法詳解

 更新時(shí)間:2023年08月15日 10:36:04   作者:微小冷  
Tkinter中的Frame控件是一個(gè)用于組織和管理其他控件的容器,它可以將其他控件放置在自己內(nèi)部,用于創(chuàng)建更復(fù)雜的用戶界面,要?jiǎng)?chuàng)建一個(gè)Frame控件,可以使用Tkinter的Frame類,所以本文就通過一個(gè)簡(jiǎn)單的示例給大家介紹一下

Frame和LabelFrame控件

對(duì)于一個(gè)稍微復(fù)雜的軟件,界面上肯定會(huì)劃分多個(gè)功能區(qū),每個(gè)功能區(qū)內(nèi)部又有一些子功能區(qū),如果直接用按鈕在窗口中亂排,那么軟件的設(shè)計(jì)邏輯就比較腦殘。而為了實(shí)現(xiàn)這種套娃模式,tkinter提供了Frame控件,簡(jiǎn)單地說,F(xiàn)rame就是一個(gè)可以容納控件的容器,有了這個(gè),就可以窗口中套著大Frame,大Frame套小Frame這樣套下去。

import tkinter as tk
win = tk.Tk()
for i in range(3):
    frm = tk.Frame(win)
    frm.pack(side=tk.LEFT, expand=tk.YES, fill=tk.Y)
    for j in range(3):
        btn = tk.Button(frm, text=f"{i,j}", width=10)
        btn.pack(side=tk.TOP,expand=tk.YES,fill=tk.X)
win.mainloop()

效果如下

在這里插入圖片描述

當(dāng)然,從感官上來說,上面的這種布局結(jié)構(gòu)其實(shí)看不太出來應(yīng)用了Frame組件。相比之下,LabelFrame就稍有特點(diǎn)。將上述繪圖代碼中的tk.Frame(win)改為tk.LabelFrame(win, text=f"第{i}列"),就可以得到下圖

在這里插入圖片描述

Frame參數(shù)

由于LabelFrame比Frame多了個(gè)標(biāo)題,所以比Frame更復(fù)雜,簡(jiǎn)單起見,先介紹Frame的參數(shù)。一般Frame支持的參數(shù),LabelFrame都支持。

首先,height和width用來設(shè)置寬度和高度;padx和pady用于設(shè)置水平和垂直方向上的邊距。下面的表中給出了一些有關(guān)Frame邊框的配色設(shè)置

選項(xiàng)含義
background/bg設(shè)置背景顏色,默認(rèn)值由系統(tǒng)指定
borderwidth/bd指定的邊框?qū)挾?,默認(rèn)2像素
takefocus設(shè)為True時(shí),可接受輸入焦點(diǎn),默認(rèn)False
highlightbackground未獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
highlightcolor獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
highlightthickness指定高亮邊框的寬度,默認(rèn)1或2像素

下面設(shè)置一下背景色和邊框

import tkinter as tk
def showFrames(frms):
    for i, frm in enumerate(frms):
        frm.pack(side=tk.LEFT, expand=tk.YES, fill=tk.Y)
        for j in range(3):
            btn = tk.Button(frm, text=f"{i,j}", width=10)
            btn.pack(side=tk.TOP,expand=tk.YES,fill=tk.X)
win = tk.Tk()
frms = [tk.Frame(win, bg='LightPink', bd=bd, takefocus=True,
    highlightbackground="gray", 
    highlightcolor="red",
    highlightthickness=bd,
    ) for bd in (2, 5, 10)]
showFrames(frms)
win.mainloop()

效果如下,當(dāng)按下tab鍵時(shí),可以看到被選中的Frame邊框變紅

在這里插入圖片描述

LabelFrame參數(shù)

LabelFrame比Frame多了標(biāo)題,相應(yīng)多出來的參數(shù)基本都是有關(guān)文字設(shè)置的。

選項(xiàng)含義
text指定本,可以包含換行符
font文本字體
foreground/fg文本顏色
labelanchor文本顯示位置,默認(rèn)"nw"
labelwidget指定一個(gè)組件替代text

其中,labelanchor可選位置有"n", “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或 “center”,其ewsn代表東西南北,上北下南左西右東。

下面設(shè)置一下

win = tk.Tk()
frms = [tk.LabelFrame(win, text=lc, labelanchor=lc, bd=5, 
    fg='green', takefocus=True, highlightbackground="gray", 
    highlightcolor="red") for lc in ("nw", "s", "ne")]
showFrames(frms)
win.mainloop()

效果如下

在這里插入圖片描述

到此這篇關(guān)于python tkinter中的Frame控件用法詳解的文章就介紹到這了,更多相關(guān)python tkinter Frame控件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

武强县| 达尔| 剑阁县| 江山市| 芜湖县| 中方县| 鄯善县| 通河县| 柏乡县| 桑植县| 安龙县| 谢通门县| 井研县| 阿克苏市| 宜良县| 成都市| 墨玉县| 株洲市| 孙吴县| 达日县| 桃源县| 武冈市| 齐河县| 海口市| 大城县| 保亭| 琼结县| 汝城县| 抚顺县| 京山县| 娱乐| 宁陵县| 包头市| 阿城市| 长乐市| 石首市| 花垣县| 平原县| 利川市| 南康市| 宜川县|