微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

目录

一、下载模块

  二、第一个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()

 运行结果

 程序说明

原文地址:https://www.jb51.cc/wenti/3285850.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐