python界面-(八)Python 图形化界面设计

本文详细介绍了Python图形化界面设计中常见的控件,包括标签、消息、输入框、文本框、按钮、单选按钮、复选框、列表框、组合框、滑块和菜单。通过实例展示了如何利用这些控件实现各种功能,如文本变化、事件响应、数值输入、文件选择、颜色选择等,帮助读者深入理解Tkinter库在GUI开发中的应用。
摘要由CSDN通过智能技术生成

3.1、文本输入和输出相关控件:文本的输入与输出控件通常包括:标签(Label)、消息(Message)、输入框(Entry)、文本框(Text)。他们除了前述共同属性外,都具有一些特征属性和功能。

标签(Label)和 消息(Message):除了单行与多行的不同外,属性和用法基本一致,用于呈现文本信息。值得注意的是:属性text通常用于实例在第一次呈现时的固定文本,而如果需要在程序执行后发生变化,则可以使用下列方法之一实现:1、用控件实例的configure()方法来改变属性text的值,可使显示的文本发生变化;2、先定义一个tkinter的内部类型变量var=StringVar() 的值也可以使显示文本发生变化。

看下面的一个例子:制作一个电子时钟,用root的after()方法每隔1秒time模块以获取系统当前时间,并在标签中显示出来。

方法一:利用configure()方法或config()来实现文本变化。

91844c5bca78

import tkinter

import time

def gettime():

timestr = time.strftime("%H:%M:%S") # 获取当前的时间并转化为字符串

lb.configure(text=timestr) # 重新设置标签文本

root.after(1000,gettime) # 每隔1s调用函数 gettime 自身获取时间

root = tkinter.Tk()

root.title('时钟')

lb = tkinter.Label(root,text='',fg='blue',font=("黑体",80))

lb.pack()

gettime()

root.mainloop()

方法二:利用textvariable变量属性来实现文本变化。

import tkinter

import time

def gettime():

var.set(time.strftime("%H:%M:%S")) # 获取当前时间

root.after(1000,gettime) # 每隔1s调用函数 gettime 自身获取时间

root = tkinter.Tk()

root.title('时钟')

var=tkinter.StringVar()

lb = tkinter.Label(root,textvariable=var,fg='blue',font=("黑体",80))

lb.pack()

gettime()

root.mainloop()

文本框(Text):

文本框的常用方法如下:

方法

功能

delete(起始位置,[,终止位置])

删除指定区域文本

get(起始位置,[,终止位置])

获取指定区域文本

insert(位置,[,字符串]...)

将文本插入到指定位置

see(位置)

在指定位置是否可见文本,返回布尔值

index(标记)

返回标记所在的行和列

mark_names()

返回所有标记名称

mark_set(标记,位置)

在指定位置设置标记

mark_unset(标记)

去除标记

上表位置的取值可为整数,浮点数或END(末尾),例如0.0表示第0列第0行

如下一个例子:每隔1秒获取一次当前日期的时间,并写入文本框中,如下:本例中调用 datetime.now()获取当前日期时间,用insert()方法每次从文本框txt的尾部(END)开始追加文本。

91844c5bca78

获取当前日期的时间并写入文本中

from tkinter import *

import time

import datetime

def gettime():

s=str(datetime.datetime.now())+' '

txt.insert(END,s)

root.after(1000,gettime) # 每隔1s调用函数 gettime 自身获取时间

root=Tk()

root.geometry('320x240')

txt=Text(root)

txt.pack()

gettime()

root.mainloop()

输入框(Entry):通常作为功能比较单一的接收单行文本输入的控件,虽然也有许多对其中文本进行操作的方法,但通常用的只有取值方法get()和用于删除文本的delete(起始位置,终止位置),例如:清空输入框为delete(0,END)。

3.2、按钮(Button):主要是为响应鼠标单击事件触发运行程序所设的,故其除控件共有属性外,属性command是最为重要的属性。通常,将按钮要触发执行的程序以函数形式预先定义,然后可以用一下两种方法调用函数。Button按钮的状态有:'normal','active','disabled'

直接调用函数。参数表达式为"command=函数名”,注意函数名后面不要加括号,也不能传递参数。如下面的command=run1:

利用匿名函数调用函数和传递参数。参数的表达式为"command=lambda”:函数名(参数列表)。例如下面的:"command=lambda:run2(inp1.get(),inp2.get())"。

看下面的例子:1.从两个输入框去的输入文本后转为浮点数值进行加法运算,要求每次单击按钮产生的算是结果以文本的形式追加到文本框中,将原输入框清空。2.按钮方法一不传参数调用函数run1()实现,按钮"方法二”用lambda调用函数run2(x,y)同时传递参数实现。

91844c5bca78

简单加法器

from tkinter import *

def run1():

a = float(inp1.get())

b = float(inp2.get())

s = '%0.2f+%0.2f=%0.2f ' % (a, b, a + b)

txt.insert(END, s) # 追加显示运算结果

inp1.delete(0, END) # 清空输入

inp2.delete(0, END) # 清空输入

def run2(x, y):

a = float(x)

b = float(y)

s = '%0.2f+%0.2f=%0.2f ' % (a, b, a + b)

txt.insert(END, s) # 追加显示运算结果

inp1.delete(0, END) # 清空输入

inp2.delete(0, END) # 清空输入

root = Tk()

root.geometry('460x240')

root.title('简单加法器')

lb1 = Label(root, text='请输入两个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值