您现在的位置是:首页 >学无止境 >Python实现交互窗口功能(Tkinter;面向对象的图形化用户界面(GUI)模块)(一)网站首页学无止境

Python实现交互窗口功能(Tkinter;面向对象的图形化用户界面(GUI)模块)(一)

小紫莹 2023-05-14 08:00:02
简介Python实现交互窗口功能(Tkinter;面向对象的图形化用户界面(GUI)模块)(一)

本文主要介绍Python中实现GUI的Tkinter模块以及模块中的控件及其使用

1、图形化界面设计的基本理解


Python自带了tkinter 模块,面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法。

其图像化编程的基本步骤通常包括:

  • 导入 tkinter 模块
  • 创建 GUI 根窗体
  • 添加人机交互控件并编写相应的函数。
  • 在主事件循环中等待用户触发事件响应。

2、窗体控件布局

2.1   根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。

  • 当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 title() 方法可设置其标题文字,用geometry()方法可以设置窗体的大小(以像素为单位)。将其置于主循环中,除非用户关闭,否则程序始终处于运行状态。

  • 执行该程序,一个窗体就呈现出来了。在这个主循环的根窗体中,可持续呈现中的其他可视化控件实例,监测事件的发生并执行相应的处理程序。

  • 下面是根窗体呈现示例:

from tkinter import *

root = Tk()
root.title('我的第一个Python窗体')
root.geometry('380x240')  # 这里的乘号不是 * ,而是小写英文字母 x
root.mainloop()

效果:

 2.2  tkinter 常用控件

  • 常用控件:

  • 常用的10 多种,如下:
控件名称作用
Button按钮单击触发事件
Canvas画布绘制图形或绘制特殊控件
Checkbutton复选框多项选择
Entry输入框接收单行文本输入
Frame框架用于控件分组
Label标签单行文本显示
Lisbox列表框显示文本列表
Menu菜单创建菜单命令
Message消息多行文本标签,与Label 用法类似
Radiobutton单选按钮从互斥的多个选项中做单项选择
Scale滑块默认垂直方向,鼠标拖动改变数值形成可视化交互
Scrollbar滑动条

默认垂直方向,课鼠标拖动改变数值

可与 Text、Lisbox、Canvas等控件配合移动可视化空间

Text文本框接收或输出显示多行文本
Toplevel新建窗体容器在顶层创建新窗体
  • 控件的共同属性

  • 在窗体上呈现的可视化控件,通常包括尺寸、颜色、字体、相对位置、浮雕样式、图标样式和悬停光标形状等共同属性。不同的控件由于形状和功能不同,又有其特征属性。在初始化根窗体和根窗体主循环之间,可实例化窗体控件,并设置其属性。父容器可为根窗体或其他容器控件实例。常见的控件共同属性如下表:

    属性说明取值
    anchor文本起始位置CENTER(默认),E,S,W,N,NE,SE,SW,NW
    bg背景色
    bd加粗(默认 2 像素)
    bitmap黑白二值图标网上查找
    cursor鼠标悬停光标网上查找
    font字体
    fg前景色
    height高(文本控件的单位为行,不是像素)
    image显示图像
    justify多行文本的对其方式CENTER(默认),LEFT,RIGHT,TOP,BOTTOM
    padx水平扩展像素
    pady垂直扩展像素
    relief3D浮雕样式FLAT,RAISED,SUNKEN,GROOVE,RIDGE
    state控件实例状态是否可用NORMAL(默认),DISABLED
    width宽(文本控件的单位为行,不是像素)
  • 标签及常见属性示例

from tkinter import *

root = Tk()
root.title('标签')
lb = Label(root, text='我是第一个标签',
           bg='#d3fbfb',
           fg='red',
           font=('华文新魏', 32),
           width=20, height=2,
           relief=SUNKEN)
lb.pack()
root.mainloop()

其中,标签实例lb 在父容器root中实例化,具有代码中所示的text(文本)、bg(背景色)、fg(前景色)、font(字体)、width(宽,默认以字符为单位)、height(高,默认以字符为单位)和 relief(浮雕样式)等一系列属性。


在实例化控件时,实例的属性可以“属性=属性值”的形式枚举列出,不区分先后次序。

例如:“ text='我是第一个标签' ”显示标签的文本内容,“bg='#d3fbfb'”设置背景色为十六进制数RGB色 #d3fbfb等等。属性值通常用文本形式表示。


当然如果这个控件实例只需要一次性呈现,也可以不必命名,直接实例化并布局呈现出来

属性 relief 为控件呈现出来的3D浮雕样式,有 FLAT(平的)、RAISED(凸起的)、SUNKEN(凹陷的)、GROOVE(沟槽状边缘)和 RIDGE(脊状边缘) 5种。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。