首页 > 编程语言 >软件测试|超好用超简单的Python GUI库——tkinter(五)

软件测试|超好用超简单的Python GUI库——tkinter(五)

时间:2023-04-10 15:04:20浏览次数:30  
标签:控件 tkinter Python win 输入框 tk time Entry 软件测试

前言

在之前,我们介绍了tkinter的button控件,label控件,今天我们介绍一下entry控件,entry控件我们可以理解为界面的内容输入框,实现GUI界面与用户的信息交互,最典型的场景就是我们在登录时需要输入的账号密码。

Entry 控件使用起来非常简单,下面对该控件做简单的介绍。基本语法格式如下:

tk_entry = Entry( master, option, ... )

Entry控件基本属性

Entry控件常用属性如下:

属性名称

说明

exportselection

默认情况下,如果在输入框中选中文本会复制到粘贴板,如果要忽略这个功能,可以设置为 exportselection=0

selectbackground

选中文字时的背景颜色

selectforeground

选中文字时的前景色

show

指定文本框内容以何种样式的字符显示,比如密码可以将值设为 show="*"

textvariable

输入框内值,也称动态字符串,使用 StringVar() 对象来设置,而 text 为静态字符串对象

xscrollcommand

设置输入框内容滚动条,当输入的内容大于输入框的宽度时使用户

动态数据类型展示

表格中提及了 StringVar() 方法,和其同类的方法还有 BooleanVar()、DoubleVar()、IntVar() 方法,不难看出他们分别代表一种数据类型,即字符串、布尔值、浮点型、整型,这些方法并不属于 Python 内置方法,而是 Tkinter 特有的方法。

在界面编程的过程中,有时我们需要“动态跟踪”一些变量值的变化,从而保证值的变换及时的反映到显示界面上,但是 Python 内置的数据类型是无法这一目的的,因此使用了 Tcl 内置的对象,我们把这些方法创建的数据类型称为“动态类型”,比如 StringVar() 创建的字符串,称为“动态字符串”。

比如我们创建一个界面,实时展示我们的时间,代码如下:

import tkinter as tk
import time

time_window = tk.Tk()


time_window.geometry('450x150+100+100')
time_window.resizable(0,0)
time_window.title('北京时间')
# 获取时间的函数
def gettime():
    # 获取当前时间
    dstr.set(time.strftime("%H:%M:%S"))
    # 每隔 1s 调用一次 gettime()函数来获取时间
    time_window.after(1000, gettime)
# 生成动态字符串
dstr = tk.StringVar()
# 利用 textvariable 来实现文本变化
lb = tk.Label(time_window,textvariable=dstr,fg='green',font=("微软雅黑",85))
lb.pack()
# 调用生成时间的函数
gettime()
# 显示窗口
time_window.mainloop()

运行程序结果如下:

软件测试|超好用超简单的Python GUI库——tkinter(五)_输入框

Entry常用方法

Entry 控件常用方法,如下所示

方法

说明

delete()

根据索引值删除输入框内的值

get()

获取输入框内的是

set()

设置输入框内的值

insert()

在指定的位置插入字符串

index()

返回指定的索引值

select_clear()

取消选中状态

select_adujst()

确保输入框中选中的范围包含 index 参数所指定的字符,选中指定索引和光标所在位置之前的字符

select_from (index)

设置一个新的选中范围,通过索引值 index 来设置

select_present()

返回输入框是否有处于选中状态的文本,如果有则返回 true,否则返回 false。

select_to()

选中指定索引与光标之间的所有值

select_range()

选中指定索引与光标之间的所有值,参数值为 start,end,要求 start 必须小于 end。

注:在 Entry 控件中,我们可以通过以下方式来指定字符的所在位置:

  • 数字索引:表示从 0 开始的索引数字
  • "ANCHOE":在存在字符的情况下,它对应第一个被选中的字符
  • "END":对应已存在文本中的最后一个位置
  • "insert(index,'字符'):将字符插入到 index 指定的索引位置

使用示例如下:

import tkinter as tk
win = tk.Tk()
# 设置主窗口
win.geometry('250x100')
win.title("拜仁慕尼黑")

win.resizable(0,0)
# 创建输入框控件
entry1 = tk.Entry(win)
# 放置输入框,并设置位置
entry1.pack(padx=20, pady=20)
entry1.delete(0, "end")
# 插入默认文本
entry1.insert(0,'拜仁慕尼黑,FC Bayern forever no.1!')
# 得到输入框字符串
print(entry1.get())
# 删除所有字符
# entry1.delete(0, tk.END)
win.mainloop()

运行程序结果如下:

软件测试|超好用超简单的Python GUI库——tkinter(五)_字符串_02

注册登录示例

import tkinter as tk
win =tk.Tk()
# 设置主窗口
win.geometry('300x300')
win.title("英雄联盟登录程序")

win.resizable(0,0)
# 新建文本标签
labe1 = tk.Label(win,text="账号:")
labe2 = tk.Label(win,text="密码:")
# grid()控件布局管理器,以行、列的形式对控件进行布局,后续会做详细介绍
labe1.grid(row=0)
labe2.grid(row=1)
# 为上面的文本标签,创建两个输入框控件
entry1 = tk.Entry(win)
entry2 = tk.Entry(win)
# 对控件进行布局管理,放在文本标签的后面
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
# 显示主窗口
win.mainloop()

运行程序如下图所示:

软件测试|超好用超简单的Python GUI库——tkinter(五)_字符串_03

注:这只是一个基础的GUI界面,没有进行效果渲染等处理,距离和样式都没有进行设置。

总结

本文对tkinter的Entry控件进行了介绍,主要介绍了动态类型数据展示以及一些常用方法的使用,下一篇文章我们将介绍Entry控件的输入验证功能。



标签:控件,tkinter,Python,win,输入框,tk,time,Entry,软件测试
From: https://blog.51cto.com/u_15640304/6180908

相关文章

  • python找图
    importcv2fromPILimportImageGrabimportnumpyasnpimportpyautoguiif__name__=='__main__':im=ImageGrab.grab()im.save('./res/screen.png','png')img_rgb=cv2.imread('./res/screen.png')......
  • Python3网络爬虫实战之爬虫框
    ScrapySplash的安装ScrapySplash是一个Scrapy中支持JavaScript渲染的工具,本节来介绍一下它的安装方式。ScrapySplash的安装分为两部分,一个是是Splash服务的安装,安装方式是通过Docker,安装之后会启动一个Splash服务,我们可以通过它的接口来实现JavaScript页面的加载。......
  • 这是隔5秒执行一次Python
    importtimedefsleeptime(hour,min,sec):returnhour*3600+min*60+secsecond=sleeptime(0,0,30)while1==1:time.sleep(second)print('doaction')#这是隔5秒执行一次fromwinotifyimportNotificationdefpush(title,msg,app......
  • Python的安装以及IDLE的配置
    前言本文是一个Python入门教程,主要包含的内容如下:python的安装、环境配置python自带开发环境IDLE的配置蓝桥杯报名及考试流程(重点介绍注意事项和比赛技巧)、计算机能且只能做到两件事,执行计算结果和保存计算结果,但它把这两件事都干到了极致,现在随便一台笔记本、台式机都能在一秒内执......
  • Python常用语句
    一、常用语句1、安装pipsudoapt-getinstallpython-pip2、查看pip版本:pip--version3、获取帮助:pip--help4、升级pip:pipinstall-Upip5、安装指定版本的包 pipinstallSomePackage           最新版本 pipinstallSomePackage==1.0.4 ......
  • Python异常处理模块——retrying
    https://zhuanlan.zhihu.com/p/420964250安装pipinstallretrying使用retrying提供一个装饰器函数retry,被装饰的函数会在运行失败的情况下重新执行,默认一直报错就一直重试。importrandomfromretryingimportretry@retrydefdo_something_unreliable():ifrand......
  • 只有一个人说了真话!通解代码——python
    不管几个人说了这话,代码逻辑都是一样的,无非参数不同。例大老鼠发现家里的奶酪少了一大块,审问四只小老鼠ABCD,其实只有一只老鼠偷吃了奶酪。A说:我没吃。B说:是C吃的。C说:肯定是D吃的。D说:C在冤枉我。己知四只小老鼠中有一只说的是真话,三只说的是假话。到底是谁偷吃了......
  • Python 小型项目大全 61~65
    六十一、ROT13密码原文:http://inventwithpython.com/bigbookpython/project61.htmlROT13密码是最简单的加密算法之一,代表“旋转13个空格”密码将字母A到Z表示为数字0到25,加密后的字母距离明文字母13个空格:A变成N,B变成O,以此类推。加密过程和解密过程是一样的,这使得......
  • Python 小型项目大全 71~75
    七十一、声音模拟原文:http://inventwithpython.com/bigbookpython/project71.html类似于西蒙电子玩具,这款识记游戏使用第三方playsound模块,播放四种不同的声音,分别对应键盘上的A、S、D、F键。当你成功地重复游戏给你的图案时,图案会变得越来越长。你的短期记忆中能容纳多少声......
  • Python 小型项目大全 76~81
    七十六、井字棋原文:http://inventwithpython.com/bigbookpython/project76.html井字棋是一种在3×3网格上玩的经典纸笔游戏。玩家轮流放置X或O标记,试图连续获得三个。大多数井字棋都以平局告终,但如果你的对手不小心,你也有可能智胜他们。运行示例当您运行tictactoe.py......