【tkinter学习笔记 - 1】:第一个GUI程序、Frame框架的使用、Label标签

本文介绍了Python GUI编程的基础,包括使用Tkinter库创建第一个GUI程序、理解geometry方法设置窗口大小和位置、运用Frame框架组织组件以及Label标签的使用,包括其属性和图像显示。通过实例代码演示了各个组件的创建和事件处理,帮助读者掌握Tkinter的基本操作。
摘要由CSDN通过智能技术生成

目录

一、下载模块

  二、第一个GUI程序

代码演示

geometry说明

 三、Frame框架的使用

代码演示 

四、Label标签 

Label标签的常用属性 

代码演示 

 程序明

一、下载模块

在终端中输入如下命令 

pip install TK 


  二、第一个GUI程序

代码演示

from tkinter import *
from tkinter import messagebox
# 根据类Tk的无参构造函数
root = Tk()
# 设置窗口标题
root.title('我的第一个GUI程序')
# 设置窗口的大小和位置
root.geometry('300x200+100+200')
# 在主窗口中添加可视化组件,比如按钮(Button)
btn01 = Button(root,text='点我送花')
# 通过几何布局管理显示,管理组件的大小和位置
btn01.pack()

# 事件处理,通过绑定时间处理程序,响应用户操作所出发的事件(比如:单击、双击等)
def songhua(e): # e就是事件
    messagebox.showinfo('阿峰', '送你一朵小红花')
btn01.bind('<Button-1>', songhua)
# 调用组建的mainloop()方法,进入事件循环
root.mainloop()

 运行结果

geometry说明

 主窗口的位置大小

通过geometry('wxh(+-)x(+-)y')进行设置,w为宽度,h为高度。

+x表示距屏幕左边的距离;-x表示距屏幕右边的距离

+y表示距屏幕上边的距离;-y表示距屏幕下边的距离


 三、Frame框架的使用

Frame框架是一个tkinter组件,表示一个矩形区域,Frame一般作为容器使用,可以放置其它组件,从而实现复杂的布局。 

代码演示 

'''测试一个经典的GUI程序的写法,使用面向对象的方式'''
from tkinter import *
from tkinter import messagebox
import tkinter as tk

class Application(tk.Frame):
    '''一个经典的GUI程序的类的写法'''

    def __init__(self, master=None):
        # Application继承Frame,但是不能自动调用Frame中的构造函数,以下为手动调用Frame中的构造函数
        tk.Frame.__init__(self, master)
        self.master = master
        self.pack()

        self.createWidget()

    def createWidget(self):
        '''创建组件'''
        # command点击按钮后执行的命令
        self.btn01 = Button(self, text='点击有惊喜', command=self.songhua)
        self.btn01.pack()

        # 设置退出按钮,command=root.destroy退出整个程序
        self.btn02 = Button(self, text='退出', command=root.destroy)
        self.btn02.pack()
    def songhua(self):
        messagebox.showinfo('送花', '送你一朵小红花')

if __name__ == '__main__':
    root = Tk()
    root.geometry('400x100+200+300')
    root.title('一个经典的GUI程序类的测试')
    app = Application(master=root)
    root.mainloop()

 运行结果


四、Label标签 

Label(标签)主要用于显示文本信息,也可以显示图像 

Label标签的常用属性 

1、width、height

        用于指定区域大小,如果显示是文本,则以单个英文字符大小为单位(一个汉字占两个字符位置);如果显示是图像,则以像素为单位。默认值是根据具体的内容动态调整。

2、font

        指定字体样式和字体大小,如:font=(font_name, size)

3、image

        显示在Label上的图像,目前tkinter只支持gif格式

4、bg、fg

        fg(foreground):前景色;bg(background):背景色

5、justify

        针对多行文字的对齐,可设置justify属性,可选值:“left”,“center”,“right” 

代码演示 

import tkinter as tk
from tkinter import *
from PIL import ImageTk, Image
class Application(tk.Frame):
    def __init__(self, master=None):
        tk.Frame.__init__(self,master)
        self.master = master
        self.pack()

        self.createWidget()


    def createWidget(self):
        '''创建组件'''
        self.label01 = Label(self, text='第一个Label', width=11, height=2,
                             fg='white', bg='black')
        self.label02 = Label(self, text='第二个Label', width=11, height=2,
                             fg='blue', bg='white', font=('黑体',12))
        self.label01.pack()
        self.label02.pack()


        # 显示图像
        # 把photo声明成全局变量,如果是局部变量,本方法执行完毕后,图像对象销毁,窗口显示不出图像
        global img
        photo = Image.open("2.jpg")  # 括号里为需要显示在图形化界面里的图片

        photo = photo.resize((200, 100))  # 规定图片大小
        img = ImageTk.PhotoImage(photo)
        self.label03 = Label(self,image=img)
        self.label03.pack()

        self.label04 = Label(self, text='如果\n云\n知道',borderwidth=1, relief='groove', justify='right',
                             fg='white', bg='black',font=('黑体',12))
        self.label04.pack()

        # 设置退出按钮
        self.btn01 = Button(self, text='退出', command=root.destroy)
        self.btn01.pack()
if __name__ == '__main__':
    root = Tk()
    root.title('Label测试')
    root.geometry('300x300+200+300')
    app = Application(master=root)
    root.mainloop()

 运行结果

 程序说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值