python圖形用戶界面tkinter之按鈕Button的使用說明
python tkinter按鈕Button的使用
創(chuàng)建和設置窗口
from tkinter import *
#創(chuàng)建窗口對象
root = Tk()
#窗口屬性設置
root.title ('窗口標題')
root.geometry('300x400')
root.configure(bg='blue')
root.iconbitmap(r'C:\Users\Administrator\Desktop\iVista 2 OS X Icons ico\ico\Burn.ico')Mark:使用了窗口的iconbitmap函數(shù)更改了圖標。
按鈕Button屬性1
def print1():
print('你好')
button = Button(root,text='打印',
font=('楷體',20),fg='red',bg='black',
anchor='center',command=print1, #command是命令的意思
height=1,width=5,bd=6)
button.pack()
root.mainloop()效果圖示

Mark:Button按鈕的很多屬性和Label標簽類似。
比如文本(text)、文本字體(font)、字體大小、顏色(fg)、文本在Button按鈕中的位置(anchor)、文本中不同行的對齊方式(justify)、按鈕的高度和寬度(height、width)、按鈕的背景色(bg)等等。和Lable標簽相比,Button按鈕有回調(diào)函數(shù),command=函數(shù)名,當點擊按鈕時,就會執(zhí)行回調(diào)函數(shù)的代碼塊。
按鈕Button屬性2
def hello():
print('你好')
im = PhotoImage(file=r'C:\Users\Administrator\Desktop\圖片PNG格式\喜鵲桃花折扇.png')
button = Button(root,text='button',command = hello,
height=500,width=500,image=im,
relief= SUNKEN)
button.pack()
root.mainloop()效果圖示

Mark:也可以在Button按鈕上顯示圖片。
先將想要顯示的圖片轉化為image對象(PhotoImage(file=‘圖片路徑’)),然后使用image屬性,image=image對象。如果不設置按鈕的高度和寬度(height,width),那么顯示按鈕的大小就是圖片的大小。如果設置按鈕的高度和寬度,則只會顯示圖片的一部分。這里,height、width的單位是像素單位。
修改Button屬性
動態(tài)的修改按鈕Button的屬性
def print1():
#button['text']='Now you see me'
button.configure(text='Now you see me')
button = Button(root,text='打印',
font=('楷體',30),fg='red',bg='black',
anchor='center',command=print1,
height=1,width=20,bd=6)
button.pack()
root.mainloop()效果圖示

點擊Button按鈕后,文本內(nèi)容變成

Mark:Button屬性可以修改。
如果想呈現(xiàn)的效果是已經(jīng)設置好的Button在點擊按鈕后屬性發(fā)生了變化,可以在回調(diào)函數(shù)里修改Button的屬性:Button對象[‘關鍵參數(shù)’]=要修改的值或Button對象.comfigure(關鍵參數(shù)=要修改的值)。
小結:通過Button對象,我們可以在窗口中設置不同外觀的按鈕。而且,點擊Button按鈕,可以執(zhí)行函數(shù)中的代碼塊。
python tkinter的Button組件
這個地方難度不高,記住參數(shù)就行。
Tkinter的布局方式有三種
| 幾何方法 | 描述 |
| pack() | 包裝; |
| grid() | 網(wǎng)格; |
| place() | 位置; |
代碼如下:
# coding:utf8
import tkinter as tk
class APP:
def __init__(self, master):
frame = tk.Frame(master)
frame.pack(side=tk.RIGHT, padx=70, pady=100)
b4 = tk.Button(frame, text="測試command點擊調(diào)用函數(shù)", bd="4", bg="yellow", command=lambda: self.Newtk("x"))
b4.pack()
@staticmethod
def Newtk(x):
if x != "x":
return 0
win1 = tk.Tk()
win1.title("提示信息")
frame1 = tk.Frame(win1)
frame1.pack(side=tk.RIGHT, padx=70, pady=100)
l1 = tk.Label(frame1, text="噢,你點擊了。給你彈個框樂呵樂呵")
l1.pack()
admin = tk.Tk()
admin.title("測試Button")
win = APP(admin)
admin.mainloop()w = Button ( master, option=value, ... )
| 序號 | 可選項 & 描述 |
|---|---|
| 1 | activebackground 當鼠標放上去時,按鈕的背景色 |
| 2 | activeforeground 當鼠標放上去時,按鈕的前景色 |
| 3 | bd 按鈕邊框的大小,默認為 2 個像素 |
| 4 | bg 按鈕的背景色 |
| 5 | command 按鈕關聯(lián)的函數(shù),當按鈕被點擊時,執(zhí)行該函數(shù) |
| 6 | fg 按鈕的前景色(按鈕文本的顏色) |
| 7 | font 文本字體 |
| 8 | height 按鈕的高度 |
| 9 | highlightcolor 要高亮的顏色 |
| 10 | image 按鈕上要顯示的圖片 |
| 11 | justify 顯示多行文本的時候,設置不同行之間的對齊方式,可選項包括LEFT, RIGHT, CENTER |
| 12 | padx 按鈕在x軸方向上的內(nèi)邊距(padding),是指按鈕的內(nèi)容與按鈕邊緣的距離 |
| 13 | pady 按鈕在y軸方向上的內(nèi)邊距(padding) |
| 14 | relief 邊框樣式,設置控件3D效果,可選的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默認為 FLAT。 |
| 15 | state 設置按鈕組件狀態(tài),可選的有NORMAL、ACTIVE、 DISABLED。默認 NORMAL。 |
| 16 | underline 下劃線。默認按鈕上的文本都不帶下劃線。取值就是帶下劃線的字符串索引,為 0 時,第一個字符帶下劃線,為 1 時,前兩個字符帶下劃線,以此類推 |
| 17 | width 按鈕的寬度,如未設置此項,其大小以適應按鈕的內(nèi)容(文本或圖片的大?。?/p> |
| 18 | wraplength 限制按鈕每行顯示的字符的數(shù)量 |
| 19 | text 按鈕的文本內(nèi)容 |
| 19 | anchor 錨選項,控制文本的位置,默認為中心 |
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python批量實現(xiàn)Word文件轉換為PDF文件
這篇文章主要為大家詳細介紹了python批量實現(xiàn)Word文件轉換為PDF文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
通過LyScript實現(xiàn)從文本中讀寫ShellCode
LyScript 插件通過配合內(nèi)存讀寫,可實現(xiàn)對特定位置的ShellCode代碼的導出。本文將利用這一特性實現(xiàn)從文本中讀寫ShellCode,感興趣的可以了解一下2022-08-08
Mysql分組查詢group by與with rollup方式
這篇文章主要介紹了Mysql分組查詢group by與with rollup方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
教你怎么用Python selenium操作瀏覽器對象的基礎API
今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著怎么用Python selenium操作瀏覽器對象的基礎API展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python表格數(shù)據(jù)處理庫之tablib庫詳解
這篇文章主要介紹了Python表格數(shù)據(jù)處理庫之tablib庫詳解,Tablib是一個用于處理電子表格數(shù)據(jù)的Python庫,它可以輕松地進行數(shù)據(jù)的導入和導出,以及數(shù)據(jù)格式的轉換,需要的朋友可以參考下2023-08-08

