Python程序开发——第十一章 图形用户页面编程

news/2024/11/24 13:27:09/

目录

  • 一、图形用户界面与tkinter
  • 二、tkinter的根窗口
    • (一)根窗口的创建
    • (二)根窗口的基本方法
  • 三、几何布局管理器
    • (一)pack布局
    • (二)grid布局
    • (三)place布局
  • 四、tkinter组件
    • (一)标签
    • (二)按钮
    • (三)文本框

一、图形用户界面与tkinter

python中可以通过图形用户界面,即GUI来进行图形页面应用程序开发,tkinter是python的默认GUI,是一个内置模块,可以说是其标准GUI库,与其它GUI相比,它操作简单、可移植性(可以在大多数的 Unix 平台下使用,同样可以应用在 Windows和 Mac系统)等等,可以通过import thinterfrom tkinter import *导入该模块。

import thinterfrom tkinter import *

二、tkinter的根窗口

(一)根窗口的创建

在进行图形用户页面编程之前首先要创建一个根窗口(主窗口),通过tkinter模块中的TK类的构造函数创建一个根窗口对象,每个程序只能有一个根窗口,但允许有多个子窗口,为确保使该图形用户页面总处于运行状态,可以使用mianloop()方法,使其进入消息循环。
例如下列python代码:

import tkinterwindow=tkinter.Tk() #创建一个根窗口对象window
window.mainloop()   #进入消息循环

运行结果如下,生成了一个根窗口:
在这里插入图片描述

(二)根窗口的基本方法

可以通过基本方法来设置根窗口,如下:
1、title()用于设置窗口的名称;
2、resizable()用于设置窗口的可调性,默认情况下都是可以调节的可以不用设置;
3、geometry()用于设置根窗口的大小,该方法接收一个宽×高+x轴偏移量+y轴偏移量格式的字符串。
4、quit()用于退出窗口;
5、updata()用于刷新页面。
例如下列python代码,创建一个根窗口对象window,且设置根窗口名称和使其可调:

import tkinterwindow = tkinter.Tk()  # 创建一个根窗口对象window
window.title("我的GUI页面")  # 设置根窗口的名称
window.resizable()  # 使根窗口可调,即可任意调节其长宽
window.mainloop()  # 进入消息循环

运行结果如下:
在这里插入图片描述
可以对窗口进行调节:
在这里插入图片描述

三、几何布局管理器

通过几何布局管理器可以布局tkinter中的组件,分为pack、grid和place三种,在同一父窗口中只能使用一种几何布局管理器

(一)pack布局

pack布局可看成一个容器/包装,调用pack()方法将组件添加至父组件中,它有几个属性:
1、expand设置组件的填充方法;
2、fill设置组件是否填充额外的空间,取值可为none、x、y或both;
3、side设置组件的分布方式,取值可为Top、botton、left或right,默认值为top。

(二)grid布局

调用grid()方法可实现将父组件分割成一个二维表格,它有几个属性:
1、row设置组件所在行;
2、column设置组件所在列;
3、rowspan设置组件占据的行数。

(三)place布局

调用place方法可将组件放在一个特定的位置,它有几个属性:
1、anchor设置组件的其它选项的位置;
2、relx、rely设置相对窗口宽度和高度的位置,取值范围为[0,1.0],其中relx=0.5,rely=0.5处于中心;
3、x、y设置绝对布局的坐标,单位为px。

四、tkinter组件

(一)标签

Label标签用于显示信息,可以显示文本和位图,通过Label类的构造方法Label()创建标签。
该组件有以下常用的属性:

属性功能
anchor设置文本和图像的位置,默认为center
background设置标签的背景颜色
borderwidth设置标签边框宽度(px),默认值为2px
foreground设置前景色
height设置标签的高度
width设置标签的宽度
image设置标签上显示图像
padx文本左侧和右侧的附加填充
pady文本上侧和下侧的附加填充
state标签状态
justify设置对齐方式,默认为center
text设置文本
relief设置标签样式,默认为flat
例如下列python代码:
import tkinterwindow = tkinter.Tk()
a = tkinter.Label(window, anchor="s", height=20, width=30, text="HELLO WORLD!", background="yellow")  # 创建一个标签
a.pack()  # 通过pack()方法布局
window.mainloop()

运行结果如下:
在这里插入图片描述

(二)按钮

通过Button类的构造方法Button()即可创建一个按钮对象,该组件有以下常用的属性:

属性功能
activebackground鼠标放上去时按钮的背景颜色
activeforeground鼠标放上去时按钮的前景色
background按钮的背景颜色
borderwidth边框宽度,默认为2个像素
foreground正常前景(文字)颜色
height高度
width宽度
image要显示的图像
padx文字左侧和右侧的附加填充
pady文字上方和下方的附加填充
text按钮的文字内容
command点击按钮时触发的动作

例如下列python代码,创建一个按钮,按钮为黑色,点击按钮显示内容:

import tkinterwindow = tkinter.Tk()
b = tkinter.Button(window, text="HELLO WORLD!", background="black")
b.pack()
window.mainloop()

运行结果如下:
在这里插入图片描述
点击按钮,按钮显示内容:
在这里插入图片描述

(三)文本框

例如下列python代码:

import tkinterwidows=tkinter.Tk()
E=tkinter.Entry(widows,width=50,fg='red',background='blue')
E.pack()
widows.mainloop()

运行结果如下:
在这里插入图片描述
可以在文本框中输入文字:
在这里插入图片描述
……


http://www.ppmy.cn/news/766284.html

相关文章

红楼梦人物关系

第一代:水字辈祖宗创下基业 贾源、贾演兄弟二人帮先帝打江山立下战功,贾演被封为宁国公(大约有平定江山安宁天下之意),贾源被封荣国公(大约有强国富民之功)。贾源贾演二兄弟皆是一脉单传&#x…

版本比较器:自己写或者使用hutool的包

项目中存在版本的比较: 比如:V3.23.09之前版本走一个逻辑,之后走另外的一个逻辑 fun compareVersions(version1: String, version2: String): Int {val version1Parts version1.split(".")val version2Parts version2.split(".")v…

特征选择算法 | Matlab实现基于ReliefF特征选择算法的回归数据特征选择 ReliefF

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab实现基于ReliefF特征选择算法的回归数据特征选择 ReliefF 部分源码 %--------------------

解密Android7.0 8.0进程保活与拉活的实现方式 如何才能让APP常驻内存 躲避系统的追杀

进程保活 前言APP进程被系统杀死Low Memory Killer进程优先级 进程保活1px Activity前台Service 进程拉活粘性ServiceJobScheduler双进程守护全家桶唤醒系统广播唤醒 总结 前言 近期被一些朋友问到关于进程保活这块的知识点,想必是很多开发者研究的重点&#xff0c…

Android推送 智能心跳解决方案 手机休眠对心跳的影响

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51611625 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的收货! Android推送服务的几种实现方式 一、推送方式基础知识: 在移…

超低功耗芯片ESP8266

快速入门指南中介绍了NodeMCU上的ESP8266芯片,这是一种超低功耗芯片,只利用太阳能就可以运行。 项目介绍 “菲莱”着陆器登陆彗星让我们深受启发,于是我们从前段时间开始开展低功耗的研发项目,其中假设我们只能利用太阳能对电池充…

STM8L的低功耗模式的配置

低功耗可以说是stm8l系列单片机的核心特色了。假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要。那么继续假设我们这个温度传感器不需要一直工作&#xff0c…

【笔记】效率脑科学:卓有成效地完成每一项工作

问题与决策 场景一:早上应接不暇的邮件 做出决策和解决问题的能力很大程度上依赖于大脑中一个叫前额皮质的区域。 前额皮质是你与世界进行有意识互动的生物基础,是大脑的思考核心,它让你在生活中不会进入“自动驾驶”模式。 尽管前额皮质很…