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

Python中Tkinter組件Button的具體使用

 更新時間:2022年01月11日 14:21:47   作者:來自江南的你  
Button=組件用于實現(xiàn)各種各樣的按鈕,本文主要介紹了Python中Tkinter組件Button的具體使用,具有一定的參考價值,感興趣的可以了解一下

簡介

Button(按鈕)組件用于實現(xiàn)各種各樣的按鈕。Button 組件可以包含文本或圖像,你可以將一個 Python 的函數(shù)或方法與之相關(guān)聯(lián),當(dāng)按鈕被按下時,對應(yīng)的函數(shù)或方法將被自動執(zhí)行。

Button 組件僅能顯示單一字體的文本,但文本可以跨越多行。另外,還可以為其中的個別字符加上下劃線(例如用于表示鍵盤快捷鍵)。默認(rèn)情況下,tab 按鍵被用于在按鈕間切換。

何時使用 Button 組件?

簡而言之,Button 組件是用于讓用戶說:“干!”,通過按鈕上的文字或圖標(biāo)讓用戶清楚按下去是干什么用的。Button 組件常常被用于工具欄、應(yīng)用程序窗口、和表示接受或拒絕的對話框。Checkbutton 和 Radiobutton 

Checkbutton 和 Radiobutton 組件 更適合做數(shù)據(jù)輸入按鈕使用。

用法

普通的按鈕是非常簡單易用的。你所需要做的就是指定 Button 的內(nèi)容(文本、位圖或者圖片),并且關(guān)聯(lián)當(dāng)按鈕被按下時應(yīng)該調(diào)用的函數(shù)或方法:

import tkinter as tk
 
master = tk.Tk()
 
def callback():
    print("我被調(diào)用了!")
 
b = tk.Button(master, text="執(zhí)行", command=callback)
b.pack()
 
master.mainloop()

>>> 
=============== RESTART===============
我被調(diào)用了!

 如果一個按鈕沒有相關(guān)聯(lián)的函數(shù)或方法,那么它就形同虛設(shè)。你可能在開發(fā)程序的過程中會使用到這樣的按鈕,在這種情況下,更好的方法是禁用這些按鈕,從而避免導(dǎo)致你的測試用戶產(chǎn)生疑惑。

b = tk.Button(master, text="不執(zhí)行", state="disabled")

如果你沒有指定 Label 的大小,那么 Label 的尺寸是正好可以容納其內(nèi)容而已。你可以使用 padx 和 pady 選項在 Button 的內(nèi)容和邊框間添加額外的間距。

當(dāng)然你可以通過 height 和 width 選項來明確設(shè)置 Button 的大?。喝绻泔@示的是文本,那么這兩個選項是以文本單元為單位定義 Button 的大?。蝗绻泔@示的是位圖或者圖像,那么它們以像素為單位(或者其他屏幕單元)定義 Button 大小。

對于內(nèi)容為文本的 Button 組件,你可以使用像素為單位指定 Buttton 的尺寸,不過這需要一些技巧。這里提供一個方法給大家參考(還有其它方法實現(xiàn)):

f = tk.Frame(master, height=64, width=64)
f.pack_propagate(0)
f.pack()
 
b = tk.Button(f, text="確定", command=callback)
b.pack(fill="both", expand=1)

Button 可以顯示多行文本,你可以直接使用換行符或使用 wraplength 選項來實現(xiàn)。當(dāng)文本換行的時候,你可以使用 anchor 和 justify 以及 padx 選項來使得文本如你所希望的顯示出來:

longtext = """
我明明只是一個按鈕,
作為按鈕并不需要太多
的文字用于告訴用戶當(dāng)
我被按下的時候會發(fā)生
什么事情,但我為什么
這么長?
"""
b = tk.Button(master, text=longtext, anchor="w", justify="left", padx=2, command=callback)
b.pack()

為了使一個普通的按鈕保持被“按下”的狀態(tài),例如你希望通過某種方式實現(xiàn)一個工具箱(像 Photoshop 左側(cè)的工具欄按鈕,按下的時候他保持凹下去,說明你正在使用此工具),你可以簡單的將 relief 選項的默認(rèn)值 "raised" 改為 "sunken":

b.config(relief="raised")

你或許也希望修改背景色。不過更好的方法是使用 Checkbutton 和 Radiobutton 組件,并把它們的 indicatoron 選項設(shè)置為 False:

b = tk.Checkbutton(master, image=bold, variable=var, indicatoron=False)

在早期版本的 Tkinter 中,image 選項會覆蓋 text 選項。也就是說如果你同時指定了兩個選項,那么只有 image 選項會被顯示。但在新的 Tkinter 中,你可以使用 compound 選項設(shè)置二者的混合模式。例如下邊就是通過設(shè)置 compound="center" 使得文字位于圖片的上方(重疊顯示):

photo = tk.PhotoImage(file = 'botton.gif')
b = tk.Button(master, text="點我", font = 20, image = photo, compound = "center")
 
b.pack()

通過 "left","right","top" 和 "bottom" 則可以設(shè)置文字在圖像的旁邊顯示:

b = tk.Button(master, text="點它 ->", font = 20, image = photo, compound = "right")

參數(shù)

Button(master=None, **options) (class)

master -- 父組件

**options -- 組件選項,下方表格詳細(xì)列舉了各個選項的具體含義和用法:

選項含義
activebackground1. 設(shè)置當(dāng) Button 處于活動狀態(tài)(通過 state 選項設(shè)置狀態(tài))的背景色
2. 默認(rèn)值由系統(tǒng)指定
activeforeground1. 設(shè)置當(dāng) Button 處于活動狀態(tài)(通過 state 選項設(shè)置狀態(tài))的前景色
2. 默認(rèn)值由系統(tǒng)指定
anchor

1. 控制文本(或圖像)在 Button 中顯示的位置

2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 來定位(ewsn 代表東西南北,上北下南左西右東)
3. 默認(rèn)值是 "center"

background1. 設(shè)置背景顏色
2. 默認(rèn)值由系統(tǒng)指定
bg跟 background 一樣
bitmap1. 指定顯示到 Button 上的位圖
2. 如果指定了 image 選項,則該選項被忽略
borderwidth1. 指定 Button 的邊框?qū)挾?br />2. 默認(rèn)值由系統(tǒng)指定,通常是 1 或 2 像素
bd跟 borderwidth 一樣
compound

1. 控制 Button 中文本和圖像的混合模式
2. 默認(rèn)情況下,如果有指定位圖或圖片,則不顯示文本

3. 如果該選項設(shè)置為 "center",文本顯示在圖像上(文本重疊圖像)
4. 如果該選項設(shè)置為 "bottom","left","right" 或 "top",那么圖像顯示在文本的旁邊(如 "bottom",則圖像在文本的下方)
5. 默認(rèn)值是 NONE

cursor1. 指定當(dāng)鼠標(biāo)在 Button 上飄過的時候的鼠標(biāo)樣式
2. 默認(rèn)值由系統(tǒng)指定
default1. 如果設(shè)置該選項("normal"),該按鈕會被繪制成默認(rèn)按鈕
2. Tkinter 會根據(jù)平臺的具體指標(biāo)來繪制(通常就是繪制一個額外的邊框)
2. 默認(rèn)值是 "disable"
disabledforeground1. 指定當(dāng) Button 不可用的時候前景色的顏色
2. 默認(rèn)值由系統(tǒng)指定
font1. 指定 Button 中文本的字體
2. 一個 Button 只能設(shè)置一種字體
3. 默認(rèn)值由系統(tǒng)指定
foreground1. 設(shè)置 Button 的文本和位圖的顏色
2. 默認(rèn)值由系統(tǒng)指定
fg跟 foreground 一樣
height1. 設(shè)置 Button 的高度
2. 如果 Button 顯示的是文本,那么單位是文本單元
3. 如果 Button 顯示的是圖像,那么單位是像素(或屏幕單元)
4. 如果設(shè)置為 0 或者干脆不設(shè)置,那么會自動根據(jù) Button 的內(nèi)容計算出高度
highlightbackground1. 指定當(dāng) Button 沒有獲得焦點的時候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightcolor1. 指定當(dāng) Button 獲得焦點的時候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightthickness1. 指定高亮邊框的寬度
2. 默認(rèn)值是 0(不帶高亮邊框)
image1. 指定 Button 顯示的圖片
2. 該值應(yīng)該是 PhotoImage,BitmapImage,或者能兼容的對象
3. 該選項優(yōu)先于 text 和 bitmap 選項
justify

1. 定義如何對齊多行文本

2. 使用 "left","right" 或 "center"
3. 注意,文本的位置取決于 anchor 選項
4. 默認(rèn)值是 "center"

overrelief1. 定義當(dāng)鼠標(biāo)飄過時 Button 的樣式
2. 如果不設(shè)置,那么總是使用 relief 選項指定的樣式
padx指定 Button 水平方向上的額外間距(內(nèi)容和邊框間)
pady指定 Button 垂直方向上的額外間距(內(nèi)容和邊框間)
relief1. 指定邊框樣式
2. 通常當(dāng)按鈕被按下時是 "sunken",其他時候是 "raised"
3. 另外你還可以設(shè)置 "groove"、"ridge" 或 "flat"
4. 默認(rèn)值是 "raised"
repeatdelay見下方 repeatinterval 選項的描述
repeatinterval1. 通常當(dāng)用戶鼠標(biāo)按下按鈕并釋放的時候系統(tǒng)認(rèn)為是一次點擊動作。如果你希望當(dāng)用戶持續(xù)按下按鈕的時候(沒有松開),根據(jù)一定的間隔多次觸發(fā)按鈕,那么你可以設(shè)置這個選項。
2. 當(dāng)用戶持續(xù)按下按鈕的時候,經(jīng)過 repeatdelay 時間后,每 repeatinterval 間隔就觸發(fā)一次按鈕事件。
3. 例如設(shè)置 repeatdelay=1000,repeatinterval=300,則當(dāng)用戶持續(xù)按下按鈕,在 1 秒的延遲后開始每 300 毫秒觸發(fā)一次按鈕事件,直到用戶釋放鼠標(biāo)。
state1. 指定 Button 的狀態(tài)
2. 默認(rèn)值是 "normal"
3. 另外你還可以設(shè)置 "active" 或 "disabled"
takefocus1. 指定使用 Tab 鍵可以將焦點移到該 Button 組件上(這樣按下空格鍵也相當(dāng)于觸發(fā)按鈕事件)
2. 默認(rèn)是開啟的,可以將該選項設(shè)置為 False 避免焦點在此 Button 上
text1. 指定 Button 顯示的文本
2. 文本可以包含換行符
3. 如果設(shè)置了 bitmap 或 image 選項,該選項則被忽略
textvariable1. Button 顯示 Tkinter 變量(通常是一個 StringVar 變量)的內(nèi)容
2. 如果變量被修改,Button 的文本會自動更新
underline1. 跟 text 選項一起使用,用于指定哪一個字符畫下劃線(例如用于表示鍵盤快捷鍵)
2. 默認(rèn)值是 -1
3. 例如設(shè)置為 1,則說明在 Button 的第 2 個字符處畫下劃線
width1. 設(shè)置 Button 的寬度
2. 如果 Button 顯示的是文本,那么單位是文本單元
3. 如果 Button 顯示的是圖像,那么單位是像素(或屏幕單元)
4. 如果設(shè)置為 0 或者干脆不設(shè)置,那么會自動根據(jù) Button 的內(nèi)容計算出寬度
wraplength1. 決定 Button 的文本應(yīng)該被分成多少行
2. 該選項指定每行的長度,單位是屏幕單元
3. 默認(rèn)值是 0

方法

flash() 

-- 刷新 Button 組件,該方法將重繪 Button 組件若干次(在 "active" 和 "normal" 狀態(tài)間切換)。

invoke() 

-- 調(diào)用 Button 中 command 選項指定的函數(shù)或方法,并返回函數(shù)的返回值。
-- 如果 Button 的state(狀態(tài))是 "disabled"(不可用)或沒有指定 command 選項,則該方法無效。

到此這篇關(guān)于Python中Tkinter組件Button的具體使用的文章就介紹到這了,更多相關(guān)Python Tkinter Button內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Centos環(huán)境部署django項目的全過程(永久復(fù)用)

    Centos環(huán)境部署django項目的全過程(永久復(fù)用)

    Django是一款針對Python環(huán)境的WEB開發(fā)框架,能夠幫助我們構(gòu)架快捷,下面這篇文章主要給大家介紹了關(guān)于Centos環(huán)境部署django項目的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • python用pyecharts畫地圖實例介紹

    python用pyecharts畫地圖實例介紹

    大家好,本篇文章主要講的是python用pyecharts畫地圖實例介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python開發(fā)中的Nonetype類型詳解

    Python開發(fā)中的Nonetype類型詳解

    這篇文章主要介紹了Python開發(fā)中的Nonetype類型詳解,None有自己的數(shù)據(jù)類型NoneType,你可以將None復(fù)制給任何變量,但是你不能創(chuàng)建其他NoneType對象,需要的朋友可以參考下
    2023-12-12
  • jenkins配置python腳本定時任務(wù)過程圖解

    jenkins配置python腳本定時任務(wù)過程圖解

    這篇文章主要介紹了jekins配置python腳本定時任務(wù)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Keras自定義IOU方式

    Keras自定義IOU方式

    這篇文章主要介紹了Keras自定義IOU方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作示例

    Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作示例

    這篇文章主要介紹了Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作,結(jié)合實例形式分析了Python面向?qū)ο笙嚓P(guān)的類與對象屬性常見操作技巧,需要的朋友可以參考下
    2018-12-12
  • Pytorch+PyG實現(xiàn)GraphConv過程示例詳解

    Pytorch+PyG實現(xiàn)GraphConv過程示例詳解

    這篇文章主要為大家介紹了Pytorch+PyG實現(xiàn)GraphConv過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Python讀取JSON數(shù)據(jù)操作實例解析

    Python讀取JSON數(shù)據(jù)操作實例解析

    這篇文章主要介紹了Python讀取JSON數(shù)據(jù)操作實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 三分鐘python搭建支付寶三方支付

    三分鐘python搭建支付寶三方支付

    本文主要介紹了三分鐘python搭建支付寶三方支付,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Python深度學(xué)習(xí)實戰(zhàn)PyQt5窗口切換的堆疊布局示例詳解

    Python深度學(xué)習(xí)實戰(zhàn)PyQt5窗口切換的堆疊布局示例詳解

    本文以堆疊窗口控件為例,詳細(xì)介紹堆疊布局的界面設(shè)計和程序?qū)崿F(xiàn)過程,通過案例帶小白創(chuàng)建一個典型的堆疊布局多窗口切換程序
    2021-10-10

最新評論