Python进阶 - GUI程序设计(tkinter)

0 概述

Python中有许多GUI模块可以用于开发GUI程序。最简单的有Turtle,然而它并不能用来创建图形用户界面。用于开发GUI的库主要有以下几种:

  • Tkinter:Python**内置**的标准GUI库,是一种小巧的开发库,开发速度快,在小型程序中仍有不少应用。它支持跨平台。
  • PyGTK:用C语言写的跨平台的GUI库,现在GTK已发展成了功能强大窗体丰富的GUI库。著名的GNOME即基于GTK。PyGTK提供了通过Python语言来访问GTK图形库的接口,所以在使用PyGTK之前需要安装GTK开发环境。
  • PyQt:拥有丰富的窗体部件。QT现在已经扩展成一个跨平台的应用开发框架。PyQt提供Python访问Qt的图形开发库接口。
  • WxPython开源框架,同样具有跨平台性。WxPython将GUI图形界面开发库wxWidgets和Python语言绑定。有丰富的窗体部件,使用户可以快速创建功能强大、界面元素丰富的GUI应用程序。

这里主要介绍Tkinter

1 开始使用Tkinter

from tkinter import *


window = Tk()    #创建一个窗口
label = Label(window, text = "Wellcome to Python")    # 创建一个带文本的标签
button = Button(window, text = "Click Me")    # 创建一个按钮
label.pack()    # 把标签放在窗口中
button.pack()    # 把按钮放在窗口中

# 包管理器将小构件一行一行地放在窗口之中

window.mainloop()    # 创建一个事件循环,持续处理事件直到关闭主窗口

2 事件处理

from tkinter import *


def processOK():    # 回调函数
    print("OK button is clicked")


def processCancel():
    print("Cancel button is clicked")


window = Tk()
btOK = Button(window, text = "OK", fg = "red", command = processOK)
btCancel = Button(window, text = "Cancel", bg = "yellow",
                  command = processCancel)

# fg前景色(文字颜色),默认黑色
# bg背景色(背景颜色),默认灰色


btOK.pack()
btCancel.pack()

window.mainloop()

将函数放到类中

from tkinter import *


class ProcessButtonEvent:
    """docstring for ProcessButtonEvent"""
    def __init__(self):
        window = Tk()
        btOK = Button(window, text = "OK", fg = "red",
                      command = self.processOK)
        btCancel = Button(window, text = "Cancel", bg = "yellow",
                          command = self.processCancel)
        btOK.pack()
        btCancel.pack()

        window.mainloop()

    def processOK(self):    # 回调函数
        print("OK button is clicked")

    def processCancel(self):
        print("Cancel button is clicked")

ProcessButtonEvent()

3 小构件

Tkinter中的小部件如下:

  • Button 按钮
  • Canvas 画布
  • CheckButton 复选框
  • Entry 输入框
  • Frame 容器,可将其他小部件放到里面
  • Label 显示文本或图像
  • Menu 实现下拉菜单或弹出菜单的菜单栏
  • Menubutton 下拉菜单项
  • Message 类似Label,但是能自动将文本放置在给定的宽度或宽高比内
  • Radiobutton 单选框
  • Text 格式化的文本显示,允许不同风格和属性显示和编辑文本,也支持内嵌的图片和窗口

一些属性:

  • 默认情况下,label或button上的文本是居中的。可以设置 justify 属性改变对齐方式,如 LEFT, RIGHT, CENTER
  • cursor光标的形状设定:可以设置 cursor 选项指定光标形状,如arrow, circle, cross, plus
  • 当构建一个小构件的时候,可以指定一些属性,如 fg、bg、font、cursor、text、comm
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值