今天主要学习图形用户界面,更多的还是要我们自己去实际操作,课仿佛上了一半就完了,分享一下课程(这里在SixthClass)的源码:

https://gitee.com/wang_ming_er/python_course_learning

1、图形用户界面设计

常用的模块:

  • tkinder,python系统自带
  • wxpython,优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的

等等....

今天上课学的主要是tkinder:

控件 描述
Button 按钮控件;在程序中显示按钮。
Canvas 画布控件;显示图形元素如线条或文本
Checkbutton 多选框控件;用于在程序中提供多项选择框
Entry 输入控件;用于显示简单的文本内容
Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件;可以显示文本和位图
Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton 菜单按钮控件,由于显示菜单项。
Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message 消息控件;用来显示多行文本,与label比较类似
Radiobutton 单选按钮控件;显示一个单选的按钮状态
Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text 文本控件;用于显示多行文本
Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox 输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox 用于显示你应用程序的消息框。

2、tkinter模块的标签使用

(1)导入tkinter模块

import tkinter

(2)创建一个顶层容器对象

# 定义一个窗体
win = tkinter.TK()

(3)在顶层容器对象中添加组件

# 定义一个窗体
win.title('标签示例') # 定义窗体的大小400x200像素
win.geometry('400x200') # 自定义标签label
label = tkinter.Label(win,\
text ='欢迎进入Python世界!',\
font='宋体',\
fg='#FF6A6A'
)

(4)调用pack()方法进行容器的局域布局

label.pack()

(5)进入主事件循环,目的保持窗口一直显示状态

win.mainloop()

3、tkinter模块的按钮使用

窗体中的按钮事件示例:

点击按钮后,弹出一个文本标签

import tkinter
win = tkinter.Tk()
win.title('最简单窗体')
win.geometry('400x200')
t1 = '\n 少壮不努力,长大学程序.'
f1='宋体 16' def mClick():
label1 = tkinter.Label(win, text=t1, font=f1,fg='#FF6A6A')
label1.pack() B = tkinter.Button(win, text ="点击我!", command = mClick, font = f1,fg='#FF6A6A')
B.pack()
win.mainloop()

4、三种布局管理方式

(1)Pack 布局管理器

如果使用Pack布局,那么这些组件是依次向后排列,排列方向即可是水平的,也可是垂直的。

(2)Place布局管理器

Place布局就是其他GUI编程中的“绝对布局”,这种布局方式要求程序指定每个组件的绝对位置或相对于其他组件的位置。

(3)Grid布局管理器

Grid是把组件空间分解成一个网格进行维护,即按照行、列的方式排列组件,组件位置由其所在的行号和列号决定:行号相同而列号不同的的几个组件会被依次进行上下排列,列号相同而行号不同的几个组件会被依次进行左右排序。

5、密码验证的小实验

运用上面所学知识,设计一个密码验证的实验

from tkinter import * 

win = Tk()
win.geometry('600x400')
win.title('密码验证')
#发送按钮事件
def mClick():
txt = txt2.get()
if(txt == 'abc'):
txt3.set("欢迎进入本系统")
else:
txt3.set("密码错误") #创建几个组件元素
lab1=Label(win, text="请输入用户名:",font=('华文新魏','16'))
lab2=Label(win, text="请输入密 码:",font=('华文新魏','16'))
txt1=StringVar()
txt2=StringVar()
txt3=StringVar()
txt3.set("请输入用户名和密码")
entry1 = Entry(win,textvariable=txt1, width=16,font=('宋体','16') )
entry2 = Entry(win,textvariable=txt2,width=16,show='*',font=('宋体','16'))
button = Button(win, text='提交', command=mClick,font=('宋体','16'))
lab3=Label(win,textvariable=txt3,relief='ridge',width=30,font=('华文新魏','16')) #布局设置
lab1.grid(row=0,column=0)
lab2.grid(row=1,column=0)
entry1.grid(row=0,column=1)
entry2.grid(row=1,column=1)
lab3.grid(row=2,column=0,columnspan=2)
button.grid(row=2,column=2) win.mainloop()

这里在mClick()函数中设置了密码为abc,输入正确密码即可登录,否则将返回密码错误的提示。

Python课程笔记 (五)的更多相关文章

  1. Python课程笔记(一)

    由于新冠状病毒的爆发,不得不在家里上网课,开课已经两个礼拜了,今天上完Python课后,准备整理一下最近学习Python的笔记. 人生苦短,我用Python 一.Hello World 初学一门新的语 ...

  2. Python学习笔记五

    一. 递归 递归函数: def a (): print ("from b") b() def b(): print("from a ") a() a() 递推和 ...

  3. Python学习笔记五:错误与异常

    一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...

  4. python学习笔记(五):装饰器、生成器、内置函数、json

    一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里 ...

  5. Python课程笔记(十)

    不陌生,之前学习一个开源SpringBoot项目,Mysql5.5更换到5.7搞得头疼. 数据库连接的坑之前写的IDEA系列连接会遇到的问题.课程代码 今天上课就主要学习了python如何连接mysq ...

  6. Python课程笔记(九)

    本次课程主要学习了Excel和JSON格式的一些读写操作.课程代码 一.Excel数据读写操作 1.安装模块 pip install xlrd pip install xlwt 网不好可以采用三方库: ...

  7. Python课程笔记(八)

    一些简单的文件操作,学过linux的话理解感觉不会很难.课程代码 一.OS 目录方法 这个模块提供了一种方便的使用操作系统函数的方法 函数 说明 os.mkdir("path") ...

  8. Python课程笔记(六)

    今天上课补上了上次未学完比较重点的鼠标和键盘事件,同时开始学习运用turtle进行绘图. 本次课程的代码: https://gitee.com/wang_ming_er/python_course_l ...

  9. python学习笔记五 模块下(基础篇)

    shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...

随机推荐

  1. Request 获取根据页面获取用户输入判断登陆成功或者失败

    import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.serv ...

  2. HDFS基本命令

    1.创建目录 hadoop dfs -mkdir /data hadoop dfs -mkdir -p /data/data1   创建多级目录 2.查看文件 hadoop dfs -ls / 3.上 ...

  3. 洛谷P1781——宇宙总统(高精度排序)

    题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竟选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: 第一行为一个整数n,代表竞选 ...

  4. 垃圾分类app--NABCD--团队项目需求与分析

    我们的产品是--智能垃圾分类APP,它的设计灵感的来自于"可持续化发展战略,走绿色发展道路",众所周知,垃圾是放错了地方的资源,因此我们团队为了响应国家"垃圾分类&quo ...

  5. shell脚本中 /dev/null 的用途

    /dev/null 是一个特殊的设备文件,它丢弃一切写入其中的数据 可以将它 视为一个黑洞, 它等效于只写文件, 写入其中的所有内容都会消失, 尝试从中读取或输出不会有任何结果,同样,/dev/nul ...

  6. win10系统git的安装与使用命令

    一.git简介 git是一个开源的分布式版本控制系统,可以高效的进行项目版本管理.分布式相比集中式最大的区别在于:分布式开发者可以提交到本地,每个开发者通过克隆在本地机器上拷贝一个完整的git仓库. ...

  7. 基于Docker构建企业Jenkins CI平台

  8. python学习笔记(九)-函数2

    交换两个变量的值 a = 2 b = 1 b = 1 a = 2 #方式一: b,a = a,b #交换两个变量的值 print(a,b) #方式二: a = a + b #3 b = a - b # ...

  9. cas的基础配置

    去除HTTPS的j基础认证方式 cas的:deployerConfigContext.xml <!-- Required for proxy ticket mechanism. -->&l ...

  10. 👊 Spring技术原理系列-从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)

    Spring EL表达式语言,这种语言jsp中学到的el,但是在整个spring之中其表达式语言要更加的复杂,而且支持度更加的广泛,最重要的是他可以进行方法的调用,对象的实例化,集合操作等等,但是唯一 ...