各位好!针对前期实战了很多案例,然后也对于tkinter库有了更深入的了解和掌握,因此,秉承“知识分享”的理念,把在实战中使用到的组件的知识进行了整理和归纳汇总,然后输出本次的基本知识的使用博文,分享给大家,希望大家喜欢,并对日常有帮助!
本次将分享的是:python tkinter基础组件之label和combobox

一、label组件

Label用于在窗口中显示文本和图像,是由背景和前景叠加构成的内容。

Label组件定义函数: Label(master=None, cnf={}, **kw)
其中,kw参数是用来自定义lable组件的键值对。

(一)背景自定义

背景由内容区+填充区+边框等三部分构成。

1、内容区参数:

(1)width,height用于指定区域大小,如果显示前景内容是文本,则以单个字符大小为单位;如果显示的是图像,则以像素为单位。默认值是根据具体显示的内容动态调整。
(2)background用于指定背景的颜色。

2、填充区参数:

(1)padx , pady:指的是内容区和边框之间的间隔大小,单位是像素。

3、边框参数:

(1)样式relief(可选值为:flat(默认),sunken,raised,groove,ridge),
(2)borderwidth(边框的宽度,单位是像素,默认根据系统而定,一般是1或2像素)
(3)highlightbackground,highlightcolor,highlightthickness:三个边框参数仅在Label允许接收焦点的情况下(tackfocus=True),用于设置焦点获取前后高亮边框颜色以及高亮边框宽度。

(二)前景自定义

前景由文本内容和图像等两部分构成。

1、文本

文本内容参数有:

(1)指定字体和字体大小,如:font = (font_name,size),默认有系统指定。
(2)文本对齐方式,justify = “center(默认)left/right/”
(3)指定文本(或图像)颜色,foreground = “指定的颜色”,可以是英文名字,也可以是RGB格式的
(4)指定文本内容:(静态的)text = “目标字符串…”;(动态更新的)textvariable = str_obj,当str_obg的内容改变时,会更新Label中对应内容。
(5)单个字符添加下划线,underline = index, index是目标字符串中的字符索引值。
(6)文本或图像在背景内容区的位置:anchor 可选值为(n,s,w,e,ne,nw,sw,se,center)

2、图像

图像内容参数有:

(1)指定图片:bitmap=bitmap_image,当指定image选项的时候,这个参数会被忽略掉。
bitmap_image=tkinter.BitmapImage(file = “位图路径”)
normal_image=tkinter.PhotoImage(file = “gif 、png或jpg图片路径”)
(2)图片和文本取舍:
compound参数可以控制要显示的文本和图像。当同时指明了要显示的文本和图像时,可以通过该参数来进行不同设置。
可选值:None 默认值,表示只显示图像,不显示文本;bottom/top/left/right,表示图片显示在文本的下/上/左/右;center,表示文本显示在图片中心上方。

(三)Label的其他参数

(1)activebacakground activeforground 用于设置Label处于活动(active)状态下的背景和前景颜色。
(2)diableforground 指定当Label不可用的状态(Disable)下的前景颜色。
(3)cursor 指定鼠标经过Label的时候,鼠标的样式。
(4)state 指定Label的状态,用于控制Label如何显示。可选值有:normal(默认)/active/disable。

输出的案例如下:

import tkinter as tk
from PIL import Image,ImageTk
root = tk.Tk()
# bitmap_image = tk.BitmapImage(file = "set.bmp")
# normal_image = tk.PhotoImage(file='set.png')
img = Image.open('timg.jpg')
img = img.resize((200,200))
normal_image = ImageTk.PhotoImage(img)
label1 = tk.Label(root,
     padx=10,
     pady=20,
     background="pink",
     relief="ridge",
     borderwidth=10,
     #文本
     text = "人生苦短\n我用python",
     font=("微软雅黑",16),
     justify = "center",
     foreground = "blue",
     underline = 4,
     anchor = "ne",
     #图像
     image = normal_image,
     compound = "center",
     )
label1.pack()
root.title('label组件案例01')
root.mainloop()

输出结果如下:

python设置label的间隔 python中的label函数_可选值

二、Combobox组件

Combobox为下拉列表控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选。

使用方式为ttk.Combobox(root,option…)

(一)常用的参数列表

参数

描述

master

代表了父窗口

height

设置显示高度、如果未设置此项,其大小以适应内容标签

width

设置显示宽度,如果未设置此项,其大小以适应内容标签

state

可读状态,如state= “readonly”

textvariable

设置textvariable属性

(二)常用的函数:

函数

描述

get

返回制定索引的项值,如listbox.get(1);返回多个项值,返回元组,如listbox.get(0,2);返回当前选中项的索引listbox.curselection()

values

设定下拉列表的内容。如 data = [“a”,“b”,“c”], cbx[“values”] = data

current(i)

指定下拉列表生成时显示在列表值,i = index。如current(2),显示列表中的第三个值

(三)常用的事件:

下拉列表没有command函数(方法)。下拉列表的虚拟事件是ComboboxSelected。
输出的案例如下:

import tkinter
from tkinter import ttk,messagebox

def test(*args):
    messagebox.showinfo(title='combobox测试',message=cli.get())

root=tkinter.Tk()
root.title('combobox测试')
root.geometry('200x100')
cli=ttk.Combobox(root) #初始化
cli["values"]=("python","java","android","iphone","sql server")
cli.current(0)
cli.bind("<<ComboboxSelected>>",test)
cli.configure(state='readonly')
cli.pack(expand=tkinter.Y)
root.mainloop()

输出的结果如下:

python设置label的间隔 python中的label函数_可选值_02


好的,本次的分享内容比较简单,但是也是非常实用的,希望你能喜欢和对你有帮助。感谢你的支持!