【Python入门】38.第一个GUI程序

摘要:教你如何使用Python内置的Tkinter,创建第一个GUI程序。


写在前面:为了更好的学习python,博主记录下自己的学习路程。本学习笔记基于廖雪峰的Python教程,如有侵权,请告知删除。欢迎与博主一起学习Pythonヽ( ̄▽ ̄)ノ


目录

图形界面

Python支持多种图形界面的第三方库,包括Tk,wxWidgets,Qt,GTK等。

本文介绍如何使用Tkinter进行GUI编程。

Python内置了Tkinter,Tkinter封装了访问图形库Tk的接口,通过Tkinter就能完成简单的GUI编程。

Tkinter

创建一个GUI程序的步骤如下:
1.导入Tkinter模块;
2.创建一个继承Frame的类(Frame是用来放控件的容器,你可以理解为一个矩形框架);
3.创建控件
4.指定控件的master;
5.启动消息循环

第一个GUI程序:

from tkinter import *                    # 引入Tkinter包的所有内容

class A(Frame):                          # 定义一个Frame类
    def __init__(self, master=None):     
        Frame.__init__(self, master)     
        self.pack()                      # 把控件放到主界面,实现布局
        self.createWidgets()             # 调用创建控件的方法

    def createWidgets(self):
        self.helloLabel = Label(self, text='Hello,world!')       # 创建label控件,用于显示文本或位图
        self.helloLabel.pack()                         # 把label控件放到主界面
        self.quitButton = Button(self, text='Quit', command=self.quit)    # 创建button控件,用于退出
        self.quitButton.pack()

app = A()                                          # 实例化A
app.master.title('The first GUI')                  # 设置窗口标题
app.master.geometry('200x100')                     # 设置窗口大小
app.mainloop()                                     # 启动消息循环

结果显示如下:
这里写图片描述

当然,还能加入其它很多控件,如加入文本框,让用户输入文本,然后显示信息。

这时候我们需要引入一个messagebox模块,具体代码()如下:

from tkinter import *
import tkinter.messagebox as messagebox

class A(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.createWidgets()

    def createWidgets(self):
        self.nameInput = Entry(self)                              # Entry让用户输入文本
        self.nameInput.pack()
        self.alertButton = Button(self, text='Hello', command=self.hello)   # 加入button控件,按钮嗲用hello方法
        self.alertButton.pack()

    def hello(self):
        name = self.nameInput.get() or 'world'                    # 拿取用户输入的文本
        messagebox.showinfo('Message', 'Hello, %s' % name)        # 弹出消息对话框

app = A()
app.master.title('Hello World')
app.mainloop()

结果显示如下:
这里写图片描述

核心控件介绍:

控件名称功能
Button按钮控件,创建一个按钮
Canvas绘图控件,用于显示图形或文本
Checkbutton多选框控件,显示一个多项选择框
Entry输入控件,让用户输入文本
Text文本控件,显示多行文本
Frame框架控件,存放控件的容器
Label标签控件,用于显示文字或位图
Listbox列表框控件,显示字符串列表
Menu菜单控件,显示菜单栏
Menubutton菜单按钮控件,显示菜单项
Message消息控件,显示多行文本,与label类似
Radiobutton单选框控件,显示一个单向选择框
Scale范围控件,创建一个滑块用于设置一个范围数值
Scrollbar滚动条框架,当界面超过可视化区域时使用
Toplevel容器框架,用于创建子窗口

Python内置的Tkinter可以满足基本的GUI程序的要求,如果是非常复杂的GUI程序,建议用操作系统原生支持的语言和库来编写。


以上就是本节的全部内容,感谢你的阅读。

下一节内容:网络编程

有任何问题与想法,欢迎评论与吐槽。

和博主一起学习Python吧( ̄▽ ̄)~*

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值