python之GUI基础

图形用户界面(GUI)

- GUI就是包含按钮、文本框、等控件的窗口
- Tkinter是Python标准GUI工具包

初探

  • 导入tkinter以及这个模块的所有内容

      >>> import tkinter as tk
      >>> from tkinter import *
    
  • 创建一个充当主窗口的顶级组件(控件),实例化一个Tk对象

      >>> top = Tk()
    
  • 调用函数mainloop()进入Tkinter主事件循环,出现一个窗口

     >>> mainloop()
    

    在这里插入图片描述

  • 要创建按钮可以实例化Button类。如果没有Tk实例,创建控件也将
    实例化Tk,所以可以不先实例化Tk,而直接创建控件

      >>> btn = Button()
    
  • 创建的按钮是不可见的,需要使用布局管理器(也叫几何管理器)来告诉
    Tkinter将它放在什么地方。而pack正是这样的一个管理器

    	>>> btn.pack()
    
  • 控件包含各种属性,可以使用它们来修改控件的外观和行为

      >>> btn['text'] = 'Click me'	
    

    在这里插入图片描述

  • 给按钮添加行为,单击该按钮就会出现指定的打印消息

      >>> def clicked():
      	...     print('I was clicked!')
      	...
      	...
      	>>> btn['command'] = clicked
    
  • 可以分别给不同的属性赋值,使用方法config可以同时设置多个属性

  •   >>> btn.config(text='Click me!', command=clicked)
    
  • 还可以使用控件的构造函数来配置控件

      >>> Button(text='Clicked me!', command=clicked).pack()
    

布局

  • 对控件调用方法pack时,将把控件放在其父控件(主控件)中,要指定主控
    件,可使用构造函数的第一个可选参数;如果没有指定,将把顶级主窗口用作主控件

    	>>> Label(text="I'm in the first window").pack()
    	>>> second = Toplevel()
    	>>> Label(second, text="I'm in the second window").pack()
      # Toplevel表示除主窗口外的另一个顶级窗口,而Label就是文本标签
    
  • 没有提供任何参数时,pack从窗口顶部开始将控件堆叠成一列,并让他们在窗口
    中水平居中

      >>> for i in range(10):
      ...     Button(text=i).pack()
    

在这里插入图片描述

  • 但是控件的位置和拉伸方式是可以调整的。要指定将控件停靠在那一条边上,可将
    参数side设置为LEFT、RIGHT、TOP或BOTTOM。要让控件在x或y方向上填满分配
    给他的空间,可将参数fill设置为X、Y、或BOTH。要让控件随父控件(这里指窗
    口)一起增大,可将参数expand设置为True。还有其他的选项,可通过help

      >>> help(Pack.config)
    

事件处理

  • 可以通过设置属性command给按钮指定的动作(action)。这是一种特殊的事件处理
    但Tkinter还提供了更通用的事件处理机制:方法bind。要让事件对特定的事件进行
    处理,可对其调用方法bind,并将指定事件的名称和要使用的函数

      >>> from tkinter import *
      >>> top = Tk()
      >>> def callback(event):
      ...     print(event.x, event.y)
      ...
      >>> top.bind('<Button-1>', callback)
      '2208846659464callback'
    	# <Button-1>是使用鼠标左按钮单击的事件名称。我们将这种事件关联到函数
    	# callback。每当用户在窗口top中单击时,都将调用这个函数。
    	# 函数callback传递一个对象,这个对象包含的属性随事件类型而异
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值