重庆平台网站建设价格,帮人家做网站难吗,天津seo,省建设厅官网查询文章目录 以按钮为例共有参数动态属性 tkinter系列#xff1a;
GUI初步#x1f48e;布局#x1f48e;绑定变量#x1f48e;绑定事件#x1f48e;消息框#x1f48e;文件对话框#x1f48e;控件样式扫雷小游戏#x1f48e;强行表白神器
以按钮为例
tkinter对控件的诸… 文章目录 以按钮为例共有参数动态属性 tkinter系列
GUI初步布局绑定变量绑定事件消息框文件对话框控件样式扫雷小游戏强行表白神器
以按钮为例
tkinter对控件的诸多属性提供了可定制的功能下面以最常用的按钮作为示例集中展示其样式特点而后再详细给出每种样式所支持的部件类型。 这里面并不涉及到诸如宽度width高度height以及调控与其他部件最小间隔的padx, pady而只专注于能够体现“样式”的属性。
其绘制代码如下整体采用pack布局每一组风格均放在一个Frame中每个Frame都有一个Label和图像一一对应然后所有Frame纵向排布下去。
import tkinter as tk
import tkinter.ttk as ttkroot tk.Tk()# 用于设置frame
def setFrame(root, text):frm tk.LabelFrame(root)frm.pack(sidetk.TOP, filltk.X, expandtk.YES)ttk.Label(frm, texttext, width10).pack(sidetk.LEFT)return frmpack dict(sidetk.LEFT, padx5)frm setFrame(root, 按钮状态)
status {禁用状态:tk.DISABLED, 普通状态:tk.NORMAL, 活跃状态:tk.ACTIVE}
for i, key in enumerate(status, 2):tk.Button(frm, textkey, statestatus[key]).pack(**pack)frm setFrame(root, 按钮颜色)
tk.Button(frm, text背景色, bgblue).pack(**pack)
tk.Button(frm, text前景色, fgblue).pack(**pack)
tk.Button(frm, text鼠标点击改变背景, activebackgroundblue).pack(**pack)
tk.Button(frm, text鼠标点击改变前景, activeforegroundblue).pack(**pack)frm setFrame(root, 边框尺寸)
for i in [1,3,5,7,9]:tk.Button(frm, textf边宽{i}, bdi).pack(**pack)frm setFrame(root, 按钮字体)
fontDct {软体雅黑/12/重打印: (软体雅黑, 10, overstrike),宋体/12/斜体 : (宋体, 10, italic),黑体/12/加粗 : (黑体, 10, bold),楷体/12/下划线 : (楷体, 10, underline)}
for key in fontDct:tk.Button(frm, textkey, fontfontDct[key]).pack(**pack)frm setFrame(root, 文字对齐)
justDct {左对齐\n文字左侧对齐 : tk.LEFT,居中对齐\n文字居中对齐: tk.CENTER,右对齐\n文字右侧对齐 : tk.RIGHT}
for key in justDct:tk.Button(frm, textkey, justifyjustDct[key]).pack(**pack)frm setFrame(root, 边框样式)
reliefs {边框平坦 : tk.FLAT, 边框凹陷 : tk.SUNKEN, 边框凸起 : tk.RAISED, 边框压线 : tk.GROOVE, 边框脊线 : tk.RIDGE}
for key in reliefs:tk.Button(frm, textkey, reliefreliefs[key]).pack(**pack)frm setFrame(root, 文字样式)
tk.Button(frm, text文字换行显示, wraplength30).pack(**pack)
tk.Button(frm, text文字下划线, underline2).pack(**pack)
tk.Button(frm, text横向间距25, padx25).pack(**pack)
tk.Button(frm, text纵向间距10, pady10).pack(**pack)root.mainloop()共有参数
下表给出了tkinter控件中常用的三种部件Label, Button, Entry所共有的的属性参数
属性说明height高度wideth宽度bd边框宽度bg背景颜色fg前景颜色relief3D样式font文字字体justify文字对齐方式
其中relief可以选择tk.FLAT、tk.SUNKEN、tk.RAISED、tk.GROOVE、tk.RIDGE每种3D样式可见上图。
justify可选tk.LEFT, tk.CENTER, tk.RIGHT对应左中右。
font是一个元组包括字体、字号以及字体样式三个内容字体样式可以选择bold, italic, underline, overstrike这四种。
此外由于Entry中的文字是动态变化的所以下面三个参数适用于Label和Button但不适用于Entry
属性说明text文字underline下划线wraplength文字行宽
另一方面Button和Entry都属于可操作控件所以都有一个state参数用以描述控件是否可操作可选状态有tk.DISABLED、tk.NORMAL以及tk.ACTIVE。
动态属性
在一开始给出的Button参数图中有鼠标点击改变背景和鼠标点击改变前景这两个按钮它们对应的属性本质是一种封装好的事件。Button有这种被点击触发的事件Entry则有选中文字后触发的事件下面对这几种属性进行演示。 代码如下注意用到了上面的setFrame函数。
root tk.Tk()frm setFrame(root, 按钮颜色)
tk.Button(frm, text鼠标点击背景变红, activebackgroundred).pack(**pack)
tk.Button(frm, text鼠标点击文字变红, activeforegroundred).pack(**pack)frm setFrame(root, Entry颜色)v1 StringVar()
v1.set(选中文字后底色为红色)
tk.Entry(frm, textvariablev1, selectbackgroundred).pack(**pack)v2 StringVar()
v2.set(选中文字后文字为红色)
tk.Entry(frm, textvariablev2, selectforegroundred).pack(**pack)frm setFrame(root, Entry边框)v3 StringVar()
v3.set(选中文字后选取边框宽度)
tk.Entry(frm, textvariablev3, selectborderwidth5).pack(**pack)v4 StringVar()
v4.set(聚焦后改变边框尺寸)
tk.Entry(frm, textvariablev4, highlightthickness5).pack(**pack)root.mainloop()