使用tkinter编写GUI图形化界面

1.tkinter概述

GUI是图形化用户界面的简称,是指采用图形方式显示计算机操作用户界面。tkinter是Python自带的用于GUI编程的模块。tkinter是对图形库Tk的封装,tkinter是跨平台的,可以是在任意的操作系统下使用。

tkinter的优势在于可移植性,使用tkinter可以创建完整的GUI程序。在tkinter中间,将所有的按钮、文本框、列表等等都称为组件。

2.创建一个简单的窗口

使用tkinter创建图形界面时首先要导入tkinter模块。使用import Tkinter,如果成功就表示已经安装好了,如果没有的话就需要安装tkinter模块包。

首先要为tkinter创建一个主窗口对象,然后才能使用tkinter中间的其他的函数、方法等等。

生成主窗口之后可以像主窗口添加组件,或者直接调用mianloop方法进行消息循环。

创建主窗口可以设置标题title属性,可以设置窗口大小geometry方法,可以设置窗口是否可以变化长宽。

import tkinter

root = tkinter.Tk()
root.title("tkinter使用指南")
root.geometry("300x200")
root.resizable(width=False, height=True)
root.mainloop()

3.在tkinter中的布局管理器

在tkinter中间组件像主窗口一样使用tkinter模块中相应的组件函数生成的,组件生成后可以使用pack方法、grid方法或者是place方法将其添加到窗口中间去。

pack:按添加顺序排列组件

grid:按行列形式排列组件

place:指定组件的大小和位置

同一个父组件中间不能同时使用pack和grid两种布局管理器。

label = tkinter.Label(root,text="hello, tkinter!")
label.grid(row=0,column=1)

btn1 = tkinter.Button(root,text="exit")
btn1.grid(row=1,column=0)

btn2 = tkinter.Button(root,text="confire")
btn2.grid(row=1,column=1)

4.常见的组件

tkinter中间包含15种核心组件,用来实现不同的功能。

按钮Button,绘制图形Canvas,复选框Checkbutton,文本框Entry,框架Frame,标签Label(可以显示文字和图片),列表框Listbox,菜单Menu,滑块Scale,滚动条Scrollbar等等。

btn2 = tkinter.Button(root,text="confire", anchor="e", background="pink", height="2", cursor="wait", state=tkinter.DISABLED)

entry1 = tkinter.Entry(root,background="purple", foreground="red", state=tkinter.DISABLED)

5.实现案例:照片查看器

接下来的示例是一个图片查看器——显示图片需要配合使用“画布”(Canvas)和“图像”(PhotoImage)部件(tkinter支持的图片格式有PNG和GIF等),这个程序还引入了tkinter包中的另一个模块filedialog以便显示标准的打开文件对话框:

import tkinter as tk
import tkinter.filedialog as fd


def showImage(canvas):
    filename = fd.askopenfilename(filetypes=[("PNG图片", "*.png"),
                                             ("GIF图片", "*.gif")])
    global image  
    image = tk.PhotoImage(file=filename)
    canvas.create_image((0, 0), image=image, anchor="nw")


def main():
    window = tk.Tk()
    window.geometry("600x480")
    window.title("简单的图片查看器")
    canvas = tk.Canvas(window, width=600, height=440)
    canvas.pack(side="bottom")
    button = tk.Button(window, text="打开图片",
                       command=lambda: showImage(canvas))
    button.pack()
    tk.mainloop()


if __name__ == "__main__":
    main()

想要获取Python学习资料的小伙伴可以加QQ:728711576

你可能感兴趣的:(python基础学习之路)