Python Tkinter Button 属性和方法介绍
1. Button
Button提供了用户触发特定功能的途径。Button的属性有:
1.1标准属性
activebackground, activeforeground, anchor,
background, bitmap, borderwidth, cursor,
disabledforeground, font, foreground
highlightbackground, highlightcolor,
highlightthickness, image, justify,
padx, pady, relief, repeatdelay,
repeatinterval, takefocus, text,
textvariable, underline, wraplength
1.2 专有属性
command, compound, default, height,
overrelief, state, width
以上属性来自于python tkinter的__init__文件。感兴趣的读者可以打开查看。
1.3方法
Button有2种方法:flash和invoke。flash的功能是让按钮文字和背景短暂闪烁。invoke的功能是调用指定按钮的回调函数,相当于按动了指定的按钮。
2. Button属性和方法说明程序
此程序说明了Button的所有属性和方法。可以通过下拉框选择,查看属性或者方法的效果以及如何设置属性。示例如下:
代码由两部分组成,第一部分是Tkinter窗口代码,第二部分是Button属性数据
2.1 窗口代码
# coding:utf8
import tkinter as tk
from tkinter.ttk import *
from Button_Parameter import *
cbx_para = None # 属性下拉框
cbx_method = None # 方法下拉框
lbl_status = None # 输出说明性文字
lbl_code = None #示例代码
lbl_result = None #结果以及说明
btn_result = None #示例按钮
frm_code = None #代码Frame
frm_result = None #结果Frame
init_para = {
} #记录按钮的初始设置
demo_image = None #a.png图像
v_str = None #StringVar变量
def GetInitParameter():
global btn_result
global init_para
init_para = {
}
for item in Button_Parameter.parameter:
index = item.split("/")[0]
init_para[index] = btn_result[index]
def ClearParameter():
global btn_result
global init_para
for item in Button_Parameter.parameter:
index = item.split("/")[0]
btn_result[index] = init_para[index]
def btn_command():
global lbl_result
lbl_result['text']="回调函数成功调用"
lbl_result.grid(row=2,column=1)
def flash():
global btn_result
btn_result.flash()
def Para_Demo(*args):
global cbx_para
global lbl_code
global lbl_status
global lbl_result
global frm_result
global frm_code
global demo_image
global v_str
index = cbx_para.current()
lbl_result.grid_forget()
#
if index in Button_Parameter.Button_Para:
ClearParameter()
frm_code.grid(row=3, column=1, padx=5, pady=5)
frm_result.grid(row=3, column=2, padx=5, pady=5)
frm_code["text"] = Button_Parameter.parameter[index] + ":代码"
frm_result["text"] = Button_Parameter.parameter[index] + ":效果"
temp = Button_Parameter.Button_Para[index]
dis_code = ""
for item in range(1, len(temp[0])):
dis_code = dis_code + temp[0][item] + "\n"
lbl_code['text'] = dis_code
for item in range(1, len(temp[0])):
exec(temp[0][item])
lbl_status['text'] = temp[1]
else:
frm_code.grid_forget()
frm_result.grid_forget()
def Method_Demo(*args):
global cbx_method
global lbl_code
global lbl_status
global lbl_result
global frm_result
global frm_code
index = cbx_method.current()
lbl_result.grid_forget()
#