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)-- 控件、组件(一)相关推荐

  1. python Tkinter学习笔记 menu控件 02

    2019独角兽企业重金招聘Python工程师标准>>> ''' Created on 2012-9-19@author: liangqianwu''' #_*_ coding:utf ...

  2. Python tkinter 学习笔记(2)-- 控件、组件(二)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...

  3. Python tkinter 学习笔记(3) -- 界面布局1(grid和pack)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) Tkinter 界面布局(grid\pac ...

  4. VC学习笔记 -单选按钮控件(Ridio Button)的使用

    在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人.一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处.现拿出来与大家共享,以后积累多了,作一个CHM电 ...

  5. Asp.net控件开发学习笔记(三)-控件开发基础

    封装      在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件      创建自 ...

  6. IOS开发学习笔记018- 一般控件的使用

    1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted  1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...

  7. android菜鸟学习笔记13----Android控件(二) 自定义控件简单示例

    有时候,可能觉得系统提供的控件太丑,就会需要自定义控件来实现自己想要的效果. 以下主要参考<第一行代码> 1.自定义一个标题栏: 系统自带的标题栏很丑,且没什么大的作用,所以我们之前会在o ...

  8. PR学习笔记——效果控件的相关知识

    效果控件 1.一般调节音量 2.左右鼠标一起点击或者alt+鼠标左键 3.钢笔工具是增添关键帧的 4.alt+ctrl 换视频的位置

  9. C#学习笔记:控件BackColor属性与ForeColor的使用方法

    1.解释 (1)BackColor属性 BackColor属性表示控件的背景颜色,各个颜色颜色分量的取值范围是0-255的整数. (2)ForeColor属性 ForeColor属性表示控件的前景色, ...

最新文章

  1. Php 获取xml中的节点值
  2. php jquery教程下载,jquery怎么下载和引用
  3. java的并发框架_java并发框架有哪些
  4. 解读SAP Hybris为何获国内B2B用户青睐?
  5. 【前端】vue Unknown custom element: xxxx did you register the component correctly
  6. 主成份(PCA)与奇异值分解(SVD)的通俗解释
  7. 筛选数据库_快速研读国外专利,轻松筛选核心技术…研发人必看6大数据库实用功能盘点!...
  8. RotatedRect类opencv
  9. 圆弧裁剪算法c++_程序媛转TA之理论篇十二:反走样的几种算法原理
  10. vivi开发笔记【专辑】
  11. 联想y7000 Linux显卡驱动,联想Y7000安装ubuntu1804.6双系统和显卡驱动(一)
  12. 土壤类型、土壤质地、土壤养分空间分布
  13. 企业级shel高级l常用命令
  14. LWN:滚动发布的稳定版内核!
  15. [个人笔记] ssh-keygen和openssl工具的使用
  16. 七月行情有盼头——技术派=基础,资金流派和基本面派是工具,思维流是集大成者_96
  17. Python使用rawpy获取相机图像的原始RAW数据
  18. iOS-图片轮播-SDCycleSCrollView的使用
  19. EOS智能合约开发系列(17): 神秘的eosio.code
  20. 4W家庭理财常见问题及解决方法

热门文章

  1. 可以检测手机帧率和温度的软件_没有特异功能 手机软件是如何测得电池温度的...
  2. 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法
  3. 题: 计算机网络常见故障 网络收集的
  4. 3d激光slam:LIO-SAM框架---特征点提取
  5. ise 时钟约束_ISE 时钟约束
  6. 支付宝如何获取buyer_id (即user_id)。支付宝服务窗(生活号)支付方式
  7. abb机器人指令手册_ABB机器人计算坐标系原点姿态
  8. Smooze for Mac v1.9.24 Mac鼠标平滑滚动神器
  9. 自然语言处理课程总结_CodingPark编程公园
  10. AutoCAD新建图层时卡了,怎么重启图层