Python中Tkinter 图形化界面设计(详细教程)之三,tkinter常见控件的特征属性

三、tkinter常见控件的特征属性

3.1 文本输入和输出相关控件

3.1.1 标签(Label)和 消息(Message)

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

  • 标签(Label)和 消息(Message):除了单行与多行的不同外,属性和用法基本一致,用于呈现文本信息。值得注意的是:属性text通常用于实例在第一次呈现时的固定文本,而如果需要在程序执行后发生变化,则可以使用下列方法之一实现:1、用控件实例的configure()方法来改变属性text的值,可使显示的文本发生变化;2、先定义一个tkinter的内部类型变量var=StringVar() 的值也可以使显示文本发生变化。
    看下面的一个例子:制作一个电子时钟,用root的after()方法每隔1秒time模块以获取系统当前时间,并在标签中显示出来。

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

#coding=utf-8
import tkinter
import datetime
Win = tkinter.Tk()
Win.title("时钟")
Win.geometry("650x60+200+200")

LabelTime = tkinter.Label(Win,text='',fg='blue',font=("黑体",50))

def GetTime():
    TimeStr = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    LabelTime.configure(text=TimeStr)  # 重新设置标签文本
    Win.after(1000, GetTime)  # 每隔1s调用函数 gettime 自身获取时间

LabelTime.pack()
GetTime()
Win.mainloop()

在这里插入图片描述
方法二:利用textvariable变量属性来实现文本变化

def GetTime2():
      TimeStr2.set(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))   # 获取当前时间
      Win.after(1000,GetTime2)   # 每隔1s调用函数 gettime 自身获取时间
TimeStr2=tkinter.StringVar()
LabelTime2 = tkinter.Label(Win,textvariable=TimeStr2,fg='blue',font=("黑体",50))
LabelTime2.pack()
GetTime2()
3.1.2 文本框(Text)

文本框的常用方法如下:

方法 功能
delete(起始位置,[终止位置]) 删除指定区域文本
get(起始位置,[终止位置]) 获取指定区域文本
insert(位置,[字符串]…) 将文本插入到指定位置
see(位置) 在指定位置是否可见文本,返回布尔值
index(标记) 返回标记所在的行和列
mark_names() 返回所有标记名称
mark_set(标记,位置) 返回所有标记名称
mark_unset(标记) 去除标记
  • 上表位置的取值可为整数,浮点数或END(末尾),例如0.0表示第0列第0行
  • 如下一个例子: 每隔1秒获取一次当前日期的时间,并写入文本框中,如下:本例中调用 datetime.now()获取当前日期时间,用insert()方法每次从文本框txt的尾部(END)开始追加文本。
#coding=utf-8
import tkinter
import datetime

def GetTime():
       TimeStr = str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))+'\n'
       txt.insert(tkinter.END,TimeStr)
       Win.after(1000,GetTime)  # 每隔1s调用函数 gettime 自身获取时间

Win = tkinter.Tk()
Win.geometry('320x240')
txt = tkinter.Text(Win)
txt.pack()
GetTime()
Win.mainloop()

在这里插入图片描述

3.1.3 输入框(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)同时传递参数实现。

3.3 单选按钮

3.4 复选框

3.5 列表框 与 组合框

3.5.1 列表框
3.5.2 组合框

3.6 滑块)

3.7 菜单

3.8 子窗体

3.9 模式对话框(Modal)

3.9.1 交互对话框
3.9.2 文件选择对话框
3.9.3 颜色选择对话框

四、事件响应

五、背景图片

六、打开摄像头,显示

一.图形化界面设计的基本理解

猜你喜欢

转载自blog.csdn.net/zhuan_long/article/details/110918425