目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务11.4 文本框组件

文本框组件

  1. 文本框的格式

           在Python中,文本框Entry用于接收输入的数据。文本框Entry的基本格式为: txt = tkinter.Entry(容器名称,width=宽度, 文字字体、颜色等)



    【例6】应用布局     设计一个显示学生信息窗体程序(如图所示)。

#【例6】应用布局   设计一个显示学生信息窗体程序

#程序代码如下:

import tkinter

from tkinter import *


#定义一个窗体

win = tkinter.Tk ()

win.geometry('580x380+10+10') 

win.title('学生信息')

L1=Label(win,text="学生信息",font="song -36")

L2=Label(win,text="学号∶",font ="song -20")

                

#设置文本标签

L3=Label(win,text="姓名∶",font="song-20")

L4=Label(win,text="专业∶",font="song -20")


L1.grid(row=0,column=1)

L2.grid(row=1)

#设置文本标签的排列位置

L3.grid(row=2)

L4.grid(row=3)

photo = PhotoImage(file='pcm.gif')

L_Phot = Label(image=photo)     #设置图片及排列位置

L_Phot.image = photo

L_Phot.grid(row=0,column=2,columnspan=2,rowspan=4)

e1 = Entry(win,width=20,font ='song -20')

#设置文本框

e2 = Entry(win,width=20,font ='song -20')

e3 = Entry(win,width=20,font ='song -20')

e1.grid(row=1, column=1)

e2.grid(row=2, column=1)

e3.grid(row=3, column=1)

win.mainloop()


2. 文本框中的内容设置及获取

文本框Entry中文字内容的操作可以使用StringVar()对象来完成。

    StringVar()是Tkinter 模块的对象,它可以跟踪变量值的变化,把最新的值显示到界面上。 把Entry的textvariable属性设置为StringVar(),再通过StringVar()的get()和set()函数读取和输出相应内容。这样,文本框中始终显示的值。

【例7】设计一个密码验证程序。

#编写程序代码如下:

from  tkinter import  *

win=Tk()

win.geometry('480x116')

win.title("密码验证")

#提交按钮事件

def  mClick():

    tm=txt1.get()

    txt=txt2.get()

    if txt=="admin" :

        txt3.set("\n\n  通过验证,欢迎进入本系统!  ")

Lab1=Label(win, text = '请输入用户名:',font='Helvetica -16 bold')

Lab2=Label(win, text = '        密码: ',font='song-16',fg='Red')

txt1=StringVar()

txt2=StringVar()

txt3=StringVar()

txt3.set("请输入用户名及密码")

en1 = Entry(win,textvariable=txt1,width=16,font ='song -16')

en2 = Entry(win,textvariable=txt2,width=16,font ='song -16')

button=Button(win,text="提交",command=mClick,font ='song -16')

Lab3=Label(win, textvariable=txt3,relief='ridge',font='song-20',fg='blue')

# 布置设置

Lab1.grid(row=0, column=0)

Lab2.grid(row=1, column=0)

en1.grid(row=0, column=1)

en2.grid(row=1, column=1)

Lab3.grid(row=2, column=0,columnspan=2,)

button.grid(row=2, column=2)

win.mainloop()

【例7B】  编写一个小程序,功能是在顶层窗口安放一个单行文本框,接收输入的隐蔽密码。再安放两个按钮,一个名为“Send out”,一个名为“Return”。单击“Send out”,会将用户输入的密码内容在屏幕上显示出来;单击“Return”,立即结束程序运行,退出顶层窗口。顶层窗口的情形如图所示。


#程序代码

 import tkinter 

top=tkinter.Tk()

top.title('python GUI')

def callback(): #定义回调函数

        x=ent1.get()

        print('your password is:',x)

ent1=tkinter.Entry(top,show='*',font=('Verdana',16))

ent1.pack(pady=12)

ent1.focus_set()

btn1=tkinter.Button(top,text='Send out',width=10,fg='red',font=('Verdana',14,'bold','italic'),command=callback)

btn1.pack(side='left',padx=8)

btn2=tkinter.Button(top,text='Return',width=10,      fg='red',font=('Verdana',14,'bold','italic'),command=quit)

btn2.pack(side='left',padx=8)

top.mainloop()

说明:(1)通过tkinter中的类Entry,创建了单行文本框ent1。创建时,传递给类Entry的参数中,要关注的是show,这个属性会决定往文本框中输入信息时,用什么字符来代替它。这里由于传递的是show='*',因此表示是用一个个“*”代替用户所输入的信息。

(2)文本框ent1调用版面布局方法pack(),将其安放到顶层窗口里。

(3)单行文本框ent1调用该控件的方法focus_set()。在Python中,用鼠标单击某文本框时,该框立刻会出现输入光标“Ⅰ”。出现输入光标的这个控件,就被称为获得了“焦点”。文本框ent1调用方法focus_set(),意味着将输入焦点设置在了该文本框。于是,执行了语句 ent1.focus_set(),顶层窗口中的文本框ent1里就自动有了输入光标,无须再用鼠标去单击它。

(4)由按钮对象btn1调用版面布局方法pack(),依照传递的参数side='left'和padx=8,将该控件安放到顶层窗口上。由此应该知道,出现在顶层窗口里的控件对象,只有调用了pack(),才能够真正显现在窗口,否则是显示不出来的。

(5)创建了按钮类Button的另一个控件btn2。用鼠标单击这个按钮时,执行的回调函数是quit()(即command=quit),表示整个程序退出顶层窗口。

从这个例子可以知道:

(1)在顶层窗口上创建各种控件对象后,只有该对象调用了版面布局函数pack()(或者别的布局函数),它才能够真正被放到顶层窗口上,否则它是不会显现出来的;

(2)要搞清楚在顶层窗口上安放的按钮对象,何时呈现为垂直安排(默认),何时呈现为水平安排(例如,通过函数pack()里的side参数)。