GUI编程

本文介绍了图形用户界面(GUI)编程,包括窗口和控件、事件驱动处理、布局管理器等内容。指出GUI开发利用Python默认参数,还给出了Label、Button、Scale等控件的实例,如Button控件可通过回调函数退出程序,Scale控件能控制字体大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图形用户界面(Graphical User Insterface ,GUI)

让GUI程序启动和运行起来需要以下5个主要步骤。
1.导入Tkinter模块
2.创建一个顶层窗口对象,用于容纳整个GUI应用。
3.在顶层窗口之上(或其中)构建所有的GUI组件(及其功能)
4.通过底层的应用代码将这些GUI组件连接起来。
5.进入主事件循环。

窗口和控件
在GUI编程中,顶层的根窗口包含组成GUI应用的所有小窗口对象,他们可能是文字标签,按钮,列表框等,这些独立的GUI组件称为控件。
事件驱动处理
事件可以包括按钮(及释放),鼠标移动,敲击回车键等。一个GUI应用从开始到结束就是通过整套事件体系来驱动的。这种方式为事件驱动处理。
布局管理器
提供部件的位置,大小参数。当所有组件都摆放好了可以将组件进入到无限循环中,mainloop()。一般这是程序运行的最后一行,当进入到主循环后GUI就从这里开始接管程序的执行,所有其他行为都会通过回调来处理,甚至包括退出应用。当选择File菜单并单击EXit菜单选项,或则直接关闭窗口,就会调用一个回调函数来结束这个GUI应用


GUI开发利用了python中的默认参数,这些参数是精心挑选出来的,即使没有提供这些值,也不用担心应用程序在屏幕上的显示会有什么问题。

实例

Label控件(标签)

import tkinter

top = tkinter.Tk()
label = tkinter.Label(top, text='hello world')
label.pack()
tkinter.mainloop()

运行结果为:
在这里插入图片描述
Button控件

import tkinter

top = tkinter.Tk()
label = tkinter.Button(top, text='hello world',command=top.quit)
label.pack()
tkinter.mainloop()

解析:该按钮有一个额外的参数:tkinter.quit()方法,该参数会给按钮一个回调函数,当按钮被按下并且释放的时候整个程序就会退出。
Label和Button控件
除了控件额外的参数之外,还可以看到Packer的一些参数。fill参数告诉Packer让Quit按钮占据剩余的水平空间,而expand参数则会引导它填充整个水平可视化空间,将按钮拉伸到左右窗口边缘。

import tkinter
top = tkinter.Tk()
label = tkinter.Label(top, text='hello world')
label.pack()

button = tkinter.Button(top, text='quit', command=top.quit, bg='red', fg='white')#bg:按钮的背景颜色,fg字体的颜色
button.pack(fill=tkinter.X, expand=1)

tkinter.mainloop()

Label, Button,Scale控件
这里的Scale控件用于可Lable进行交互,Scale滑块是用来控制中文文字字体大小的工具,滑块的位置越大,字体越大。

from tkinter import *


def resize(ev=None):
    label.config(font='Helvetica -%d bold' % scale.get())#设置字体


top = Tk()
top.geometry('250x150')#设置界面的长宽

label = Label(top, text='Hello World', font='Helvetica -12 bold')#设置初始字体大小
label.pack(fill=Y, expand=1)

scale = Scale(top, from_=10, to=40, orient=HORIZONTAL, command=resize)
scale.set(12)
scale.pack(fill=X, expand=1)

quit = Button(top, text='quit', command=top.quit, activeforeground='white', activebackground='red')#点击之前是白色的,单击之后变为红的。
quit.pack()

mainloop()

Alt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值