欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?tkinter中四個(gè)常用按鈕的用法總結(jié)

 更新時(shí)間:2023年09月13日 09:04:43   作者:微小冷  
tkinter中有四個(gè)控件被冠以Button之名,分別是:Button,?Checkbutton,?Radiobutton,?Menubutton,下面小編就來(lái)和大家聊聊它們的具體用法,感興趣的可以學(xué)習(xí)一下

四大按鈕

tkinter中有四個(gè)控件被冠以Button之名,分別是:Button, Checkbutton, Radiobutton, Menubutton,但后三種其實(shí)說(shuō)不上是按鈕,Checkbutton是單選框;Radiobutton其實(shí)更類(lèi)似于Combobox;Menubutton則是菜單。

這幾種按鈕雖然功能各異,但都具有下面這些屬性,這些屬性屬于非常通用的屬性,并且在控件樣式中也以Button為例,展示過(guò)了,本文就不再贅述。既然以四大按鈕為題,那么就要稍微有點(diǎn)深度,展示一些此前不曾展示過(guò)的高級(jí)功能。

屬性說(shuō)明
background/bg背景色
borderwidth/bd邊框?qū)挾?/td>
foreground/fg前景色
state狀態(tài)
font字體
width, height寬度,高度
padx,pady水平外間距,垂直外間距
text顯示文本
justify多行文本對(duì)齊方式
relief邊框樣式
underline下劃線
wraplength換行寬度

Button連擊

Button可通過(guò)repeatdelay和repeatinterval來(lái)控制連擊操作。

正常情況下,只有按下鼠標(biāo)然后再抬起,才算是一次點(diǎn)擊事件。而tkinter中點(diǎn)擊的邏輯則是,如果按下按鈕不松手,那么等待repeatdelay時(shí)間后,每隔repeatinterval就算是一次點(diǎn)擊。

下面寫(xiě)代碼測(cè)試一下

import tkinter as tk
root = tk.Tk()
v = tk.StringVar()
iClick = 0
v.set(f"點(diǎn)擊{iClick}次")
def click():
    global iClick
    iClick += 1
    v.set(f"點(diǎn)擊{iClick}次")
tk.Button(root, height=3, width=15,
    font = ('黑體', 60, 'bold'), command=click,    
    repeatdelay=1000, repeatinterval=300,
    textvariable=v).pack(side=tk.TOP, fill=tk.BOTH)
root.mainloop()

其含義是,每點(diǎn)擊一次,iClick就加一,而按鈕自身的設(shè)置是,如果按下按鈕1000毫秒不松手,那么接下來(lái)每隔300毫秒就算一次點(diǎn)擊。效果如下

Menubutton

Menubutton的特色當(dāng)然是設(shè)置菜單,所以想用Menubutton,前提是有一個(gè)菜單。而在設(shè)置菜單過(guò)程中,可通過(guò)direction屬性,來(lái)設(shè)置菜單位置。如果不設(shè)置direction,菜單會(huì)出現(xiàn)在按鈕的下方,下面將direction設(shè)置為另外三個(gè)方向

import tkinter as tk
root = tk.Tk()
root.geometry("400x200")
def setMenu(root, mb, text):
    m = tk.Menu(mb)
    for i in range(3):
        m.add_command(label=f"{text}{i}")
    m.add_separator()
    m.add_command(label="退出", command=root.quit)
    return m
frm = tk.Frame(root)
frm.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
for d in ["above", "left", "right"]:
    mb = tk.Menubutton(frm, text=d, direction=d)
    mb.pack(side=tk.LEFT)
    m = setMenu(root, mb, d)
    mb.config(menu=m)
root.mainloop()

效果如下

Checkbutton

Checkbutton和不同Button相比是多了一個(gè)可供勾選的功能,與此同時(shí)也就具備了選中和未選中兩種狀態(tài)。這兩種狀態(tài)默認(rèn)是1和0,但在Checkbutton中,可通過(guò)offvalue和onvalue來(lái)設(shè)置未選中和已經(jīng)選中的值。

而綁定Checkbutton的選中狀態(tài)的參數(shù)是variable。

root = tk.Tk()
root.geometry("400x200")
frm = tk.Frame(root)
frm.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
v = tk.StringVar()
font = ('黑體', 20, 'bold')
Checkbutton(frm, text="單選框", font=font, variable=v, 
    offvalue="未選中", onvalue="選中了").pack(side=tk.LEFT)
tk.Label(frm, font=font, textvariable=v).pack(side=tk.LEFT)
root.mainloop()

效果如下

Radiobutton

Radiobutton可以看成是無(wú)法同時(shí)選中的多個(gè)Checkbutton,所以也通過(guò)variable來(lái)作為關(guān)聯(lián)變量,作為當(dāng)前被選中的值。但由于有多個(gè)值,所以也就沒(méi)有類(lèi)似offvalue和onvalue這樣的參數(shù)了。

root = tk.Tk()
v = StringVar(1)
frm = tk.Frame(root)
frm.place(relx=0.5, rely=0.3, anchor=tk.CENTER)
font = ('黑體', 20, 'bold')
for i in range(4):
    Radiobutton(root, text=f"Radio{i}", font=font,
        variable=v, value=i).pack(side=tk.LEFT)
frm = tk.Frame(root)
frm.place(relx=0.5, rely=0.7, anchor=tk.CENTER)
tk.Label(frm, font=font, textvariable=v).pack(side=tk.TOP)
root.mainloop()

結(jié)果如下

到此這篇關(guān)于Python tkinter中四個(gè)常用按鈕的用法總結(jié)的文章就介紹到這了,更多相關(guān)Python tkinter按鈕內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中常用的九個(gè)語(yǔ)法技巧

    python中常用的九個(gè)語(yǔ)法技巧

    大家好,本篇文章主要講的是python中常用的九個(gè)語(yǔ)法技巧,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-01-01
  • 利用Python字符畫(huà)生成甜心教主

    利用Python字符畫(huà)生成甜心教主

    字符畫(huà)是一系列字符的組合,我們可以把字符看作是比較大塊的像素,一個(gè)字符能表現(xiàn)一種顏色,字符的種類(lèi)越多,可以表現(xiàn)的顏色也越多,圖片也會(huì)更有層次感。?本文將利用Python字符畫(huà)繪制一個(gè)甜心教主王心凌,需要的可以參考一下
    2022-05-05
  • python 如何快速?gòu)?fù)制序列

    python 如何快速?gòu)?fù)制序列

    這篇文章主要介紹了python 如何快速?gòu)?fù)制序列,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • From CSV to SQLite3 by python 導(dǎo)入csv到sqlite實(shí)例

    From CSV to SQLite3 by python 導(dǎo)入csv到sqlite實(shí)例

    今天小編就為大家分享一篇From CSV to SQLite3 by python 導(dǎo)入csv到sqlite實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 最新評(píng)論