初体验

Tkinter 是python默认的GUI库,不用下载的

# 创建一个主窗口,用于容纳整个GUI程序
root=tk.Tk()
# 设置主窗口对象的标题栏
root.title('初体验')

# 添加一个Laber组件,这是最常用的组件之一。它可以显示文本,图片或图标
theLabel = tk.Label(root,text='感觉不错啊')
# 然后调用Laber组件的pack()方法,用于自动调节组件自身大小和位置
theLabel.pack()

# 注意这个时候窗口还是不会显示的,执行thinter.mainloop()让程序进入主事件循环。
root.mainloop()

root,mainloop() 是窗口的主事件循环,这基本是使用tkinter 的GUI程序的最后一行代码,因为进入了主事件循环之后,就由tkinter接管一切,也就是说,一旦执行了这行代码,就不再由代码做主了,而是由 tkinter 来响应用户的输入(例如,用户按下一个按钮,tkinter就会感受到,然后就会响应你为这个事件安排好的方法,由tkinter来调用你的函数。)

厉害一点的

import tkinter as tk
class App:
    def __init__(self,root):
        # 创建一个框架,然后在里面添加一个button按钮组件
        # 框架一般是在复杂的布局中起到将组件分组的作用
        frame = tk.Frame(root)
        frame.pack()
        
        # 创建一个按钮组件,fg就是前景色的缩写
        self.hi_there = tk.Button(frame,text='hi',fg='red',command=self.say_hi)
        self.hi_there.pack()
        
    def say_hi(self):
        print('你好啊')

# 创建一个toplevel的根窗口,并把它作为参数实例化app对象       
root = tk.Tk()
app = App(root)

# 开始主事件循环
root.mainloop()

tk.Frame 框架一般用于在复杂的布局里面,将这些组件组件进行分组。

运行起来就是一个 hi 的按钮,单机他就可以接受返回的信息 你好啊

修改pack()方法的side参数,side参数可以设置为LEFT,RIGHT,TOP,BOTTOM四个方位,默认是side = tkinter.TOP

可以修改成左对齐frame.pack(side=tk.LEFT) 或者 frame.pack(side='left'),如果不想按钮紧挨着墙角,可以设置pack()方法的padx和pady参数自定义按钮的偏移位置。frame.pack(padx=100,pady=100),有前景色就有背景色,self.hi_there = tk.Button(frame,text='hi',fg='red',bg='black',command=self.say_hi)

python调用tkinter控件 tkinter.mainloop_事件循环


是不是有点丑。。。。。

Label组件

Label(标签)组件用来在屏幕上显示文本或图像,Label组件仅能显示单一字体的文本,但文本可以跨越多行。另外,还可以为其中的个别字符加上下划线

from tkinter import *
# 导入tkinter 模块所有的内容

root = Tk()

# 创建一个文本label对象
textlabel = Label(root,text='你所下载的影片含有未成年人限制的内容,请慢18岁后在点击观看!')
textlabel.pack(side=LEFT)     # 如果没有自定label的大小,那么这个尺寸是正好容纳其内容罢了。

# 创建一个图像label对象
# 用PhotoImage实例化一个图片对象(支持gif格式)
photo = PhotoImage(file='18.gif')
imglabel = Label(root,image=photo)
imglabel.pack(side=RIGHT)

mainloop()

python调用tkinter控件 tkinter.mainloop_ide_02

可以在字符串中使用 \n 对文本进行换行,如果想将文字部分左对齐,并在水平位置与边框留有一定的距离,设置 label 的 justify 和 padx选项textlabel = Label(root,text='你所下载的影片含有未成年人限制的内容,\n请慢18岁后在点击观看!justify=LEFT,padx=10') 有时候可能需要将图片和文字分开,例如将图片作为背景,文字显示在图片上面,只需要设置compound选项即可

from tkinter import *
root = Tk()
photo = PhotoImage(file='17.gif')
thelabel = Label(root,text='就这?\nso what?',justify=LEFT,image=photo,compound=CENTER,font=('仿宋',20),fg='red')
# 文字左对齐,在图像的中央。前景色还可以使用颜色代码#00FF00 啥的
thelabel.pack()
mainloop()


参数

Label(master=None, **options) (class)

master – 父组件

**options – 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项

含义

activebackground

1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的背景色 2. 默认值由系统指定

activeforeground

1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的前景色2. 默认值由系统指定

anchor

1. 控制文本(或图像)在 Label 中显示的位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或者 “center” 来定位(ewsn 代表东西南北,上北下南左西右东)3. 默认值是 “center”

background

1. 设置背景颜色2. 默认值由系统指定

bg

跟 background 一样

bitmap

1. 指定显示到 Label 上的位图 2. 如果指定了 image 选项,则该选项被忽略

borderwidth

1. 指定 Label 的边框宽度 2. 默认值由系统指定,通常是 1 或 2 像素

bd

跟 borderwidth 一样

compound

1. 控制 Label 中文本和图像的混合模式 2. 默认情况下,如果有指定位图或图片,则不显示文本 3. 如果该选项设置为 “center”,文本显示在图像上(文本重叠图像) 4. 如果该选项设置为 “bottom”,“left”,“right” 或 “top”,那么图像显示在文本的旁边(如 “bottom”,则图像在文本的下方) 5. 默认值是 NONE

cursor

1. 指定当鼠标在 Label 上飘过的时候的鼠标样式 2. 默认值由系统指定

disabledforeground

1. 指定当 Label 不可用的时候前景色的颜色 2. 默认值由系统指定

font

1. 指定 Label 中文本的字体(注:如果同时设置字体和大小,应该用元组包起来,如(“楷体”, 20) 2. 一个 Label 只能设置一种字体 3. 默认值由系统指定

foreground

1. 设置 Label 的文本和位图的颜色 2. 默认值由系统指定

fg

跟 foreground 一样

height

1. 设置 Label 的高度 2. 如果 Label 显示的是文本,那么单位是文本单元 3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出高度

highlightbackground

1. 指定当 Label 没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定,通常是标准背景颜色

highlightcolor

1. 指定当 Label 获得焦点的时候高亮边框的颜色 2. 默认值由系统指定

highlightthickness

1. 指定高亮边框的宽度 2. 默认值是 0(不带高亮边框)

image

1. 指定 Label 显示的图片 2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 3. 该选项优先于 text 和 bitmap 选项

justify

1. 定义如何对齐多行文本 2. 使用 “left”,“right” 或 “center” 3. 注意,文本的位置取决于 anchor 选项 4. 默认值是 “center”

padx

1. 指定 Label 水平方向上的额外间距(内容和边框间) 2. 单位是像素

pady

1. 指定 Label 垂直方向上的额外间距(内容和边框间) 2. 单位是像素

relief

1. 指定边框样式 2. 默认值是 “flat” 3. 另外你还可以设置 “groove”, “raised”, “ridge”, “solid” 或者 “sunken”

state

1. 指定 Label 的状态 2. 这个标签控制 Label 如何显示 3. 默认值是 "normal 4. 另外你还可以设置 “active” 或 “disabled”

takefocus

1. 如果是 True,该 Label 接受输入焦点 2. 默认值是 False

text

1. 指定 Label 显示的文本 2. 文本可以包含换行符 3. 如果设置了 bitmap 或 image 选项,该选项则被忽略

textvariable

1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 2. 如果变量被修改,Label 的文本会自动更新

underline

1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 2. 默认值是 -1 3. 例如设置为 1,则说明在 Button 的第 2 个字符处画下划线

width

1. 设置 Label 的宽度 2. 如果 Label 显示的是文本,那么单位是文本单元 3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元)4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出宽度

wraplength

1. 决定 Label 的文本应该被分成多少行 2. 该选项指定每行的长度,单位是屏幕单元 3. 默认值是 0

额,,,又是怎么多,,,挨个试试吧,,我也不知那个常用,,