用Tkinter打造GUI开发工具(8)对齐方式和浮雕风格
我们这篇继续介绍Tkinter通用属性。
首先介绍对齐方式。Tkinter小部件的对齐方式用属性anchor。anchor取值有tk.N(上),tk.NE(右上),tk.E(右),tk.SE(右下),tk.S(下),tk.SW(左下),tk.W(左),tk.NW(左上),tk.CENTER(中间)。
我们给出一个对齐方式的示例程序。
# -*- coding: utf-8 -*-
#Tkinter位置anchor
import tkinter as tk
root=tk.Tk()
for a in [tk.N,tk.NE,tk.E,tk.SE,tk.S,tk.SW,tk.W,tk.NW,tk.CENTER]:
f = tk.Frame(root, borderwidth=2,bg='#FFFFFF',height=20,width=20)
tk.Label(f, text=str(a), fg='black',anchor=a,height=5,width=10).pack()
f.pack(side=tk.LEFT)
root.mainloop()
程序运行结果如下图。
下面介绍Tkinter小部件的浮雕风格。
Tkinter小部件的浮雕风格用relief属性来设置。能够设置的取值有RAISED,SUNKEN,FLAT,RIDGE,GROOVE,SOLID等。
下面我们通过示例程序,来看看运行的效果。在程序中同时演示了不同边框borderwidth大小的效果。
# -*- coding: utf-8 -*-
#Tkinter边框效果relief
import tkinter as tk
root=tk.Tk()
row = [None]*5
for bdw in range(5):
row[bdw] = tk.Frame(root, borderwidth=0)
tk.Label(row[bdw], text='borderwidth = %d ' % bdw).pack(side=tk.LEFT)
i = 0
column = []
for relief in [tk.RAISED,tk.SUNKEN, tk.FLAT,tk.RIDGE, tk.GROOVE, tk.SOLID]:
column.append(tk.Frame(row[bdw], borderwidth=bdw, relief=relief))
tk.Label(column[i], text=relief, width=10).pack(side=tk.LEFT)
column[i].pack(side=tk.LEFT, padx=7-bdw, pady=5+bdw)
i += 1
row[bdw].pack()
root.mainloop()
程序运行结果如下图。
通通量化和小白量化主要使用了HP_tk模块,荷蒲Tkinter扩展包。
现在随着笔者对Python和Tkinter的熟悉,正在打造HP_tk2模块,荷蒲Tkinter扩展包v2.0版本。
最近笔者深入学习Tkinter新做了一个信息提示的功能。笔者称为信息气泡,目前只能用于windows系统上。
信息气泡功能:鼠标在任何部件上停留2-3秒之间,就会出现提示文字信息,显示5秒后,会自动在屏幕中漂移,缩小,淡化透明在屏幕中。
Ballon类的使用格式如下。
Ballon(root, message=’’,x=0,y=0,bg=’’,zoom=True,offsetx=0,offsety=0,size=10)
其中root一般选为Tk()主窗口。
(x,y)指定屏幕坐标。
bg背景颜色。为空自动随机生成背景色。
zoom为True,会自动缩小。
offsetx=0,offsety=0为偏移,可以正或负整数。
使用示例。
import HP_tk2 as htk
def mess2(event):
xx=event.x_root+10
yy=event.y_root+20
b2=htk.Ballon(root=g.root,message='创建新Form表单!',x=xx,y=yy,offsety=2,offsetx=+4,size=12)
b1.bind('<Enter>',mess2)
注意:鼠标要滑过2次,2次之间间隔为2-3秒之间,才会弹出信息。目的为了防止误操作。