Python tkinter 学习笔记(2)-- 控件、组件(一)
Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程
目录
一、Tkinter 15种基础控件
1. Button 按钮控件
2.Canvas 画图控件
3.Checkbutton 多选框控件
4.Entry 单行文本框
5.Frame 框架控件
6.Label 标签控件
7.Listbox 列表标签
8.Menu 菜单控件
9.Menubutton 菜单按钮
一、Tkinter 15种基础控件
在Python Tkinter 原装有15种基础控件,本章节只是让大家对所有的控件有一个概念型的认识,不做具体研究,后期会专门开专门的章节去讲解具体的控件使用方法,具体如下表:
Button | 按钮控件,在程序中显示按钮 |
Canvas | 画布控件,用来画图形,如线条及多边形等 |
Checkbutton | 多选框控件,用于在程序中提供多项选择框 |
Entry | 输入控件,定义-一个简单的文字输入字段 |
Frame | 框架控件,定义一个窗体,以作为其他控件的容器 |
Label | 标签控件,定义一个文字或图片标签 |
Listbox | 列表框控件,定义一个下拉方块 |
Menu | 菜单控件,定义一个菜单栏、下拉菜单和弹出菜单 |
Menubutton | 菜单按钮控件,用于显示菜单项 |
Message | 消息控件,定义一个对话框 |
Radiobutton | 单选按钮控件,定义一个单选按钮 |
Scale | 范围控件,定义一个滑动条,以帮助用户设置数值 |
Scrollbar | 滚动条控件,定义-一个滚动条 |
Text | Text 文本控件,定义一个文本框 |
Topleve | 此控件与Frame控件类似,可以作为其他控件的容器。但是此控件有自己的最上层窗口,可以提供窗口管理接口 |
1. Button 按钮控件
示例代码:
# 创建一个按钮
winBtn = tk.Button(text="我是一个按钮")
winBtn.pack()
效果:
解析:Button控件就是一个按钮,可以动过这个按钮执行相关的操作,例如控制一个子程序等等,在后期会专门开一个章节讲解。
2.Canvas 画图控件
示例代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
# 格式win.geometry('%dx%d+%d+%d' %(w,h,x,y))
win.geometry('620x480+200+200') # 窗口尺寸# 创建一个画板
canvas = tk.Canvas(win, bg="lightgreen")
canvas.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.9)# 画实线
line1 = canvas.create_line((0, 0), (100, 100), width=2, fill="red")# 画虚线
canvas.create_line((200, 200), (200, 300), width=2, fill="red", dash=(1, 1))# 画圆弧
canvas.create_arc((50, 100), (400, 400), width=2)# 显示文字
canvas.create_text((100, 300), text="这是一段文字", font=("微软雅黑", 22))# 画矩形
canvas.create_rectangle(50, 25, 150, 75, fill='blue', outline='green', width=2)# 画椭圆
canvas.create_oval(400, 200, 150, 100, fill='pink', outline='green', width=2)# 画多边形
point = [(50, 100), (100, 150), (150, 200), (200, 200), (300, 300)]
canvas.create_polygon(point, outline='green', fill='blue')# 删除线子程序
def del_line():canvas.delete(line1)# 创建一个按钮
winBtn = tk.Button(text="我是一个按钮", command=del_line())
winBtn.pack()# 主窗口循环
win.mainloop()
效果:
解析:Canvas是Tkinter自带的画布控件,可以在这个画布里面绘制各种各样的图形,也可以利用这个控件封装一些自己想要的效果,美化用户界面等,Canvas自带了很多工具,例如:create_arc、create_bitmap、create_image等等,可以理解为基本的形状,利用这些基本形状可以绘制出很不错的窗口,后期也会单独开一个章节讲解这个控件
3.Checkbutton 多选框控件
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
# 格式win.geometry('%dx%d+%d+%d' %(w,h,x,y))
win.geometry('200x200+200+200') # 窗口尺寸# 创建一个多选框
ChkBtn1 = tk.Checkbutton(text="女朋友1.0")
ChkBtn1.pack()
# 再创建一个多选框
ChkBtn2 = tk.Checkbutton(text="女朋友2.0")
ChkBtn2.pack()
# 主窗口循环
win.mainloop()
效果:
解析:Checkbutton多选框(复选框)就是可以一次选择多个选项的选择框,在这里面可以设置多个选项,最常见的就是我们在做试卷的时候的多选题,大概就是这样,关于CheckButton更多使用方法后期也会专门开设单独的章节进行讲解。
4.Entry 单行文本框
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
# 格式win.geometry('%dx%d+%d+%d' %(w,h,x,y))
win.geometry('200x200+200+200') # 窗口尺寸# 创建一个文本框
winEntry = tk.Entry(width=20)
winEntry.pack()# 主窗口循环
win.mainloop()
效果:
解析:Entry 是一个单行文本框,可以利用这个显示或者让用户输入一行信息的控件。
5.Frame 框架控件
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
win.geometry('800x600+200+200')
# 设置窗口背景色
win.config(background="#FF1493")# 创建左侧上部框架
frmLT = tk.Frame(width=500, height=320, bg='blue')
tk.Label(frmLT, text="第一个框架").grid()
# 创建左侧中间框架
frmLC = tk.Frame(width=500, height=150, bg='yellow')
tk.Label(frmLC, text="第二个框架").grid()
# 创建左侧下部框架
frmLB = tk.Frame(width=500, height=30, bg='green')
tk.Label(frmLB, text="第三个框架").grid()
# 创建右侧框架
frmRT = tk.Frame(width=200, height=500, bg='#00BFFF')
tk.Label(frmRT, text="第四个框架").grid()
# 设置所有框架位置
frmLT.grid(row=0, column=0, columnspan=2, padx=1, pady=3)
frmLC.grid(row=1, column=0, columnspan=2, padx=1, pady=3)
frmLB.grid(row=2, column=0, columnspan=2)
frmRT.grid(row=0, column=2, rowspan=3, padx=2, pady=3)# 固定框架大小
frmLT.grid_propagate(0)
frmLC.grid_propagate(0)
frmLB.grid_propagate(0)
frmRT.grid_propagate(0)# 主窗口循环
win.mainloop()
效果:
解析:这里的Frame框架组件就类似于Html里面的DIV,可以通过对不同的Frame进行提前规划,进行界面设定,一般在写比较繁琐的软件的时候使用框架可以快速定位,然后再往框架里面添加对应的控件即可,具体使用方法将会在今后的章节中具体讲解。
6.Label 标签控件
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
win.geometry('220x360+200+200')# 创建一个默认的Label文本标签
winLabel = tk.Label(text="登高-杜甫", font=("书体坊兰亭体", 30), fg='#696969')
winLabel.place(x=5, y=5)# 创建一个多行文本你的标签
Strval = """
风急天高猿啸哀,渚清沙白鸟飞回。
无边落木萧萧下,不尽长江滚滚来。
万里悲秋常作客,百年多病独登台。
艰难苦恨繁霜鬓,潦倒新停浊酒杯。
"""
winLabel1 = tk.Label(win, text=Strval, anchor='center', justify='center')
winLabel1.place(x=5, y=50)# 创建一个图片标签
photo = tk.PhotoImage(file="dufu.gif")
picLabel = tk.Label(win, image=photo)
picLabel.place(x=5,y=150)# 主窗口循环
win.mainloop()
效果:
解析:Label 标签除了单行、多行文本之外还能实现简单的图片预览功能,在用户界面设计当中,是比较常用的控件之一,具体的用法在后面的章节中会具体进行介绍。
7.Listbox 列表标签
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
win.geometry('200x200+200+200')# 创建一个普通列表框
winListbox1 = tk.Listbox()
winListbox1.place(x=5, y=5)
for item in ['C语言', 'C++', 'PHP', 'JAVA/JavaScript', 'Python', 'HTML/CSS', 'JSON', 'XML', 'Go']:winListbox1.insert('end', item)# 主窗口循环
win.mainloop()
效果:
解析:Listbox 列表框主要是用于显示一个用户可以选择的列,可以通过子程序设置进行增删改等操作,具体内容将在后面的章节进行介绍。
8.Menu 菜单控件
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
win.geometry('200x200+200+200')# 菜单被点击执行打印子程序
def MenuClick():print("菜单被选中")# 创建主菜单
winMenu = tk.Menu()# 创建一个菜单
fileM = tk.Menu(winMenu, tearoff=False)
fileM.add_command(label="打开(O)", command=MenuClick)
fileM.add_command(label="关闭(Esc)", command=win.quit)
fileM.add_separator()
winMenu.add_cascade(label="文件(File)", menu=fileM)# 窗口开启菜单显示
win.config(menu=winMenu)# 主窗口循环
win.mainloop()
效果:命令行:
备注:笔者使用的是Mac OS 所以菜单在最上面,Windows/Linux菜单就在界面里面
解析:Menu是设计用户窗口界面时比较常用的一个控件,基本上一些常用软件都会使用这个控件,在后面的章节会具体介绍。
9.Menubutton 菜单按钮
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 引用tkinter窗口
import tkinter as tk# 创建窗口
win = tk.Tk()
# 给创建的窗口添加一个标题
win.title('第一个窗口')
# 设置窗口大小,和屏幕的高度,即('窗口宽度x窗口高度+屏幕顶边距离+屏幕左边距离')
win.geometry('200x200+200+200')# 菜单被点击执行打印子程序
def MenuClick():print("菜单被选中")# 创建主菜单
winMenuBtn = tk.Menubutton(win,text="菜单", relief=tk.RAISED)
winMenuBtn.pack()# 创建一个菜单
fileM = tk.Menu(winMenuBtn, tearoff=False)
fileM.add_checkbutton(label="打开(O)", command=MenuClick)
fileM.add_command(label="保存(S)", command=MenuClick)
fileM.add_separator()
fileM.add_command(label="关闭(Esc)", command=win.quit)# 窗口开启菜单显示,注意设置主体从窗口变换到Menubutton
winMenuBtn.config(menu=fileM)# 主窗口循环
win.mainloop()
效果:
解析:Menubutton就是一个菜单按钮,可以理解为点一下按钮出来一个菜单的意思,具体将在菜单一节中具体讲解。
因个人能力有限,文章中出现的错误请各位及时指出,本章未完待续……
Python tkinter 学习笔记(2)-- 控件、组件(一)相关推荐
- python Tkinter学习笔记 menu控件 02
2019独角兽企业重金招聘Python工程师标准>>> ''' Created on 2012-9-19@author: liangqianwu''' #_*_ coding:utf ...
- Python tkinter 学习笔记(2)-- 控件、组件(二)
Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...
- Python tkinter 学习笔记(3) -- 界面布局1(grid和pack)
Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) Tkinter 界面布局(grid\pac ...
- VC学习笔记 -单选按钮控件(Ridio Button)的使用
在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人.一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处.现拿出来与大家共享,以后积累多了,作一个CHM电 ...
- Asp.net控件开发学习笔记(三)-控件开发基础
封装 在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件 创建自 ...
- IOS开发学习笔记018- 一般控件的使用
1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted 1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...
- android菜鸟学习笔记13----Android控件(二) 自定义控件简单示例
有时候,可能觉得系统提供的控件太丑,就会需要自定义控件来实现自己想要的效果. 以下主要参考<第一行代码> 1.自定义一个标题栏: 系统自带的标题栏很丑,且没什么大的作用,所以我们之前会在o ...
- PR学习笔记——效果控件的相关知识
效果控件 1.一般调节音量 2.左右鼠标一起点击或者alt+鼠标左键 3.钢笔工具是增添关键帧的 4.alt+ctrl 换视频的位置
- C#学习笔记:控件BackColor属性与ForeColor的使用方法
1.解释 (1)BackColor属性 BackColor属性表示控件的背景颜色,各个颜色颜色分量的取值范围是0-255的整数. (2)ForeColor属性 ForeColor属性表示控件的前景色, ...
最新文章
- Php 获取xml中的节点值
- php jquery教程下载,jquery怎么下载和引用
- java的并发框架_java并发框架有哪些
- 解读SAP Hybris为何获国内B2B用户青睐?
- 【前端】vue Unknown custom element: xxxx did you register the component correctly
- 主成份(PCA)与奇异值分解(SVD)的通俗解释
- 筛选数据库_快速研读国外专利,轻松筛选核心技术…研发人必看6大数据库实用功能盘点!...
- RotatedRect类opencv
- 圆弧裁剪算法c++_程序媛转TA之理论篇十二:反走样的几种算法原理
- vivi开发笔记【专辑】
- 联想y7000 Linux显卡驱动,联想Y7000安装ubuntu1804.6双系统和显卡驱动(一)
- 土壤类型、土壤质地、土壤养分空间分布
- 企业级shel高级l常用命令
- LWN:滚动发布的稳定版内核!
- [个人笔记] ssh-keygen和openssl工具的使用
- 七月行情有盼头——技术派=基础,资金流派和基本面派是工具,思维流是集大成者_96
- Python使用rawpy获取相机图像的原始RAW数据
- iOS-图片轮播-SDCycleSCrollView的使用
- EOS智能合约开发系列(17): 神秘的eosio.code
- 4W家庭理财常见问题及解决方法
热门文章
- 可以检测手机帧率和温度的软件_没有特异功能 手机软件是如何测得电池温度的...
- 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法
- 题: 计算机网络常见故障 网络收集的
- 3d激光slam:LIO-SAM框架---特征点提取
- ise 时钟约束_ISE 时钟约束
- 支付宝如何获取buyer_id (即user_id)。支付宝服务窗(生活号)支付方式
- abb机器人指令手册_ABB机器人计算坐标系原点姿态
- Smooze for Mac v1.9.24 Mac鼠标平滑滚动神器
- 自然语言处理课程总结_CodingPark编程公园
- AutoCAD新建图层时卡了,怎么重启图层