用Tkinter打造GUI开发工具(9)Tkinter的位图和图片格式

用Tkinter打造GUI开发工具(9)Tkinter的位图和图片格式

在Tkinter小部件的位图选项,有下面这些位图是可用的。
在这里插入图片描述
上面的图片显示了标准的位图按钮部件能使用的为图。从左到右用后面这些字符串表示,“error”, “gray75”, “gray50”, “gray25”, “gray12”, “hourglass”, “info”, “questhead”,“question”, “warning”。
下面给一个使用位图的例子.

# -*- coding: utf-8 -*-
import  tkinter  as  tk  #导入Tkinter3模块
root =tk.Tk()  # 创建窗口对象
bitmaps=["error", "gray75", "gray50", "gray25", "gray12"]  #系统图标
bitmaps2=[ "hourglass", "info", "questhead","question","warning"] #系统图标
frame=tk.Frame(master=root)   #建立一个Frame框架
frame.pack()  #pack()方法放置
for b in bitmaps:  
    label3 = tk.Label(master=frame,   #上级部件为frame
                      text=b,  #显示信息
                      bitmap=b,  #显示图标
                      width=100,  #宽度
                      background='white', #背景颜色
                      justify='right',  #对齐方式
                      borderwidth=2,  #边框宽度
                      padx=1,  #部件x方向间距
                      pady=1, #部件y方向间距
                      compound=tk.LEFT   #图片在文字左边
                      )
    label3.pack(side=tk.LEFT)

frame2=tk.Frame(master=root)
frame2.pack()    
for b in bitmaps2:
    label3 = tk.Label(master=frame2,   #上级部件为frame2
                      text=b,   #显示信息
                      bitmap=b,  #显示图标
                      width=100,  #宽度
                      background='white',   #背景颜色
                      justify='right',  #对齐方式
                      borderwidth=2,   #边框宽度
                      padx=1,   #部件x方向间距
                      pady=1,   #部件y方向间距
                      compound=tk.RIGHT     #图片在文字右边
                      )
    label3.pack(side=tk.LEFT)

root.mainloop()     # 进入消息循环

程序运行结果图下图.
在这里插入图片描述

在Tkinter应用程序中有三种显示图形图像的方法。这三种显示方法支持不同的图像文件格式。
1)显示位图(双色)图像。Xbm格式。
显示成白底.xbm格式,需要使用位图构造函数BitmapImage, 创建位图对象的语法格式如下。

bmp=tk.BitmapImage ( file=f[, background=b][, foreground=c] )

其中参数,f是.xbm图像文件的名称。通常情况下,图像中前景(1) bits将显示为黑色像素,背景(0) bits将图像变为透明的。要改变这种行为,使用可选的background = b,选项设置背景颜色b,和可选的foreground=c选项设置前景颜色c。
例如,要显示一个图像作为一个标签,使用一个标签小部件,参数image使用BitmapImage对象图像,相关代码如下。

logo = tk.BitmapImage("logo.xbm", foreground='red')
tk.Label ( image=logo ).pack()

2)显示全色图像。.gif, .pgm,或 .ppm格式。
使用彩色图像.gif、.pgm或者.ppm格式,需要这个构造函数PhotoImage, PhotoImage对象的语法格式如下。

img=tk.PhotoImage ( file=f )

其中f是图像文件的名称。函数返回可以在任何地方使用的Tkinter图像值img。

3)Python成像库(pil)支持更广泛格式的图像。它的图像类是专门为在Tkinter应用程序中显示图像而设计的。
例如下面代码.

# -*- coding: utf-8 -*-
import tkinter as tk
from PIL import Image, ImageTk, ImageDraw, ImageFont

root=tk.Tk()
png1= ImageTk.PhotoImage(Image.open('ico/CLOCK02.ICO'))
label_img = tk.Label(root, image =png1) 
label_img.pack()
root.mainloop()

程序运行结果如下图.
在这里插入图片描述

发布了56 篇原创文章 · 获赞 67 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/89078949