tkinter基本概念和标签Label的使用

1.认识tinkter

1.1 tinkter版本
import tkinter

print(tkinter.TkVersion)
1.2 建立窗口
# 自定义Tk对象
tk = Tk()  

root.mainloop()
1.3 窗口相关方法

例如:

from tkinter import *

tk = Tk()
tk.title(" ")  # 窗口标题
tk.geometry("240x320")  # 窗口大小
# tk.configure(bg='#ffffff') 
tk.configure(bg='write')  # 窗口背景颜色
tk.mainloop()

1.4 窗口位置
from tkinter import *

tk = Tk()
tk.geometry("240x320+100+200")  # 以屏幕左上角为原点,横向100个像素点,纵向200个像素点。
tk.mainloop()

获取屏幕大小:

x = tk.winfo_screenwidth()  # 屏幕宽度
y = tk.winfo_screenheight()  # 屏幕高度
1.5 加强版tkinter模块

tkinter在后来也推出了加强版的模块,称为tkinter.ttk,有时简称ttk,这个模块中有17个Widget。
下列是原本tkinter有的Widget:
(1)Button
(2)Checkbutton
(3)Entry
(4)Frame
(5)Label
(6)LabelFrame
(7)MenuButton
(8)Radiobutton
(9)Scale
(10)Scrollbar
(11)PanedWindow
下列是ttk模块新增的Widget。
(1)Combobox
(2)Notebook
(3)Progressbar
(4)Separator
(5)Sizegrip:可以拖曳最上层窗口右下方更改最上层窗口的大小。
(6)Treeview

导入方式:

from tkinter import ttk

ttk界面更美观,但与tk没有完全兼容。

1.6 Widget属性

Dimensions:大小
Colors:颜色
Fonts:字形
Anchor:锚(位置参考点)
Relief styles:属性边框
Bitmaps:显示位图
Cursors:鼠标外形

1.7 Widget方法

设计控件时会看到下列常用的共同方法。

  1. Configuration
    (1)config(option=value):Widget属性可以在建立时设置,也可以在程序执行时使用config( )重新设置
    (2)cget(“option”):取得option参数值
    (3)keys( ):可以用此方法获得所有该Widget的参数
  2. Event Processing
    (1)mainloop( ):让程序继续执行,同时进入等待与处理窗口事件
    (2)quit( ):Python Shell窗口结束,但是所建窗口继续执行
    (3)update( ):更新窗口画面
  3. Event callbacks
    (1)bind(event,callback):事件绑定
    (2)unbind(event):解除绑定
  4. Alarm handlersafter(time,callback):间隔指定时间后调用callback( )方法

2.标签Label

2.1 基本方法

Label( )方法的第一个参数是父对象,表示这个标签将建立在哪一个父对象(可想成父窗口或称容器)内。下列是Label( )方法内其他常用参数。 (1)anchor:如果空间大于所需时,控制标签的位置,默认是CENTER(居中)
方位表示如图所示:

from tkinter import *

root = Tk()
root.title("ch2_5")
label = Label(root, text="ne代表右上角", fg="blue", bg="yellow", height=20, width=50, anchor="ne")  # anchor的参数可以是大写
label.pack()
root.mainloop()  

程序运行结果:

(2)bg或background:背景色彩。
(3)bitmap:使用默认图标当作标签内容。
(4)borderwidth或bd:标签边界宽度,默认是1。
(5)compound:可以设置标签内含图像和文字时,彼此的位置关系。

left:图像在左。right:图像在右。top:图像在上。bottom:图像在下。center:文字覆盖在图像上方。

(6)cursor:当鼠标光标在标签上方时的外形。
(7)fg或foreground:前景色彩。即字体颜色。
(8)font:可选择字形、字形样式与大小。

font参数用于设置文字字形,这个参数包含下列内容。
(1)字形family:如Helvetica、Times等,读者可以进入Word内参考所有系统字形。
(2)字号size:单位是像素。
(3)weight:例如bold、normal。
(4)slant:例如italic、roman,如果不是italic则是roman。
(5)underline:例如True、False。
(6)overstrike:例如True、False。

(9)height:标签高度,单位是字符。
(10)image:标签以图像方式呈现。
(11)justify:存在多行文本时最后一行的对齐方式,可取值有LEFT/CENTER/RIGHT(靠左/居中/靠右),默认是居中对齐。
(12)padx/pady:标签文字与标签区间的间距,单位是像素。
(13)relief:默认是relief=FLAT,可由此控制标签的外框。
(14)text:标签内容,如果有“\n”则可输入多行文字。
(15)textvariable:可以设置标签以变量方式显示。
(16)underline:可以设置第几个文字有下画线,从0开始算起,默认是-1,表示无下画线。
(17)width:标签宽度,单位是字符。
(18)wraplength:本文到多少宽度后换行,单位是像素。

2.2 图像PhotoImage

显示gif文件或者png格式图片,不能显示jpg格式图片

from tkinter import *

tk = Tk()
html_gif = PhotoImage(file="picture.gif")
label = Label(tk, image=html_gif)
label.pack()

tk.mainloop()

如果需要显示jpg图片,需要借助Image模块和ImageTk模块,且需要安装依赖库pillow

如下程序显示jpg格式图片:

from tkinter import * 
from PIL import Image, ImageTk

tk = Tk()

image = Image.open("pictrue.jpg")
pictrue = ImageTk.PhotoImage(image)
label = Label(tk, image=picture)
label.pack()

tk.mainloop()

可以结合compound参数使文字和图像共存。

2.3 Widget的共同方法config()

Widget控件在建立时可以直接设置对象属性,若是部分属性未建立,未来在程序执行时如果想要建立或是更改属性可以使用config( )方法。此方法内属性设置的参数用法与建立时相同。

设计一个计数器,自动每秒计数,按键归零。

from tkinter import *

count = 0
def counter(label):
    def counting():
        global count
        label.config(text=str(count))
        label.after(1000, counting)
        count = count + 1
    counting()

def clear():
    global count
    count = 0

tk = Tk()
label = Label(tk, bg="yellow", fg="blue", width=10, height=5, font="黑体 20")
label.pack()
button = Button(tk, text="重新计时", width=10, height=2, command=clear)
button.pack()
counter(label)

tk.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值