一、tkinter是python的标准gui库,tkinter是内置在python的安装包之中的,所以安装好python之后就可以import导入tkinter模块了

二、创建一个GUI程序

  • 1、导入 Tkinter 模块  from tkinter import *
  • 2、创建窗口  top=Tk()——实例化主窗口,,如果要实例化子窗口,用toplevel()
  • 3、创建控件(详看三)  canvas=Canvas(top,width=300,height=300,bg='white')   label=Label(top,bg='red',text='文字',fg='black')
  • 4、将控件放到窗口里面去(指定这个控件的 master, 即这个控件属于哪一个)   canvas.pack()   lable.pack()
  • 5、进入消息循环(告诉 GM(geometry manager) 有一个控件产生了。)     mainloop()

三、Tkinter 控件

Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表

控件 描述
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 用于显示你应用程序的消息框。

标准属性

标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

属性 描述
Dimension 控件大小;
Color 控件颜色;
Font 控件字体;
Anchor 锚点;
Relief 控件样式;
Bitmap 位图;
Cursor 光标;

几何管理

Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置

几何方法 描述
pack() 包装;
grid() 网格;
place()

位置;

四、canvas画布控件的常用方法

canvas.create_rectangle(40,40,100,100,dash=(4,4))   #前4个参数表示:矩形左上角坐标(40,40),右下角坐标(100,100),dash为4表示虚线长度为4?
canvas.create_oval(40,40,100,100) #前4个参数表示:圆形外围的矩形左上角坐标(40,40),右下角坐标(100,100)
canvas.create_oval(40,40,100,70) #画椭圆,也是圆的一种
canvas.create_line(40,40,40,100,width=4,fill='red')
  • create_arc:绘制弧。
  • create_bitmap:绘制位图。
  • create_image:绘制图片。
  • create_line():绘制直线。
  • create_polygon:绘制多边形。
  • create_text:绘制文字。
  • create_window:绘制组件。

四、举例:

1、画一个简单的窗口

import Tkinter

top = Tkinter.Tk()  #导入模块直接是from tkinter import *时,创建控件就直接Tk()即可

top.mainloop()  # 进入消息循环

显示结果:

2、给上面的窗口中插入2个列表

from tkinter import *   #导入库
top=Tk() #创建对象
l1= ['C','python','php','html','SQL','java'] #新建2个列表
l2= ['CSS','jQuery','Bootstrap']
list1=Listbox(top) #创建2个列表控件
list2=Listbox(top)
for i in l1:
list1.insert(0,i)
for j in l2:
list2.insert(0,j)
list1.pack() #将小部件放到主窗口
list2.pack()
top.mainloop() #进入消息循环 显示结果:

3、画矩形、圆、椭圆、直线

from tkinter import *
top=Tk()
canvas=Canvas(top,width=300,height=300,bg='green') #创建了一个画布控件
canvas.pack(expand=YES,fill=BOTH) #创建控件后必须要加这句pack(),表示把画布放到窗口里面去,否则打印出来只有一个白色的窗口
canvas.create_rectangle(40,40,100,100,dash=(4,4)) #前4个参数表示:矩形左上角坐标(40,40),右下角坐标(100,100),dash为4表示虚线长度为4?
canvas.create_oval(40,40,100,100) #前4个参数表示:圆形外围的矩形左上角坐标(40,40),右下角坐标(100,100)
canvas.create_oval(40,40,100,70) #画椭圆,也是圆的一种
canvas.create_line(40,40,40,100,width=4,fill='red') #画直线,直线宽度是1
mainloop()

显示结果:

改为白色背景,红色的填充

4、Label标签控件

from tkinter import *
top=Tk()
label=Label(top,bg='red',text='文字',fg='black') #bg是标签的背景色,text是指标签上的字,fg是文字的颜色
label.pack(padx=10,pady=50,side=LEFT)
mainloop()

显示结果:

5、实例化多窗口:实例化主窗口用tkinter.Tk(),,,实例化其他子窗口用tkinter.Topleval()

from tkinter import *
top=Tk() #实例化一个主窗口
toplevel1=Toplevel() #实例化2个子窗口
toplevel2=Toplevel()
label=Label(toplevel2,bg='red',text='文字',fg='black') #bg是标签的背景色,text是指标签上的文字,fg是文字的颜色
label.pack(padx=10,pady=50,side=LEFT)
mainloop()

显示结果:

6、指定窗口的名字、大小和定位、背景色

python中gui编程的模块之一:tkinter(python3.x中是tkinter,小写的t)的更多相关文章

  1. Python的GUI编程(TK)

    TK在大多数 Unix平台.Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口.可实现Python的GUI编程. Tkinter模 ...

  2. Python之GUI编程(Tkinter))

    不足之处,还请海涵,请指出不足.本人发布过的文章,会不断更改,力求减少错误信息. 一.重要放在开头:模块 如出现这种错误 ModuleNotFoundError: No module named 'n ...

  3. python之GUI编程-tkinter学习

    推荐几个学习网址:https://www.cnblogs.com/shwee/p/9427975.html https://cloud.tencent.com/developer/section/13 ...

  4. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述

    1. GUI概述: GUI全称为Graphical User Interface,叫做图形用户界面,也是一种交互方式(Interaction).早期计算机使用的命令行界面(command-line i ...

  5. Python进阶--GUI编程

    一.图形用户图面(GUI编程) 1. wxpython下载和安装: 下载url: http://wxpython.org/download.php 2.创建示例GUI应用程序 : ①开始需要导入wx ...

  6. 【Python】Python PYQT4 GUI编程与exe打包

    本篇文章承接http://www.cnblogs.com/zhang-zhi/p/7646923.html#3807385,上篇文章描述了对文本文件的简单处理,本章节结合PYQT4实现该功能的GUI图 ...

  7. python之GUI编程(二)win10 64位 pygame的安装

    pygame的下载网址: http://www.pygame.org/download.shtml 我下载了第一个 很显然,安装的时候出现了如图中的尴尬,更改了安装目录后,在Python shell中 ...

  8. Python的网络编程socket模块

    (1)利用socket进行简单的链接 Python里面的socket支持UDP.TCP.以及进程间的通信,socket可以把我们想要发送的东西封装起来,发送过去,然后反解成原来的样子,事实上网路通信可 ...

  9. python之Gui编程事件绑定 2014-4-8

    place() 相对定位与绝对定位 相对定位 拖动会发生变化 绝对定位不会from Tkinter import *root = Tk()# Absolute positioningButton(ro ...

随机推荐

  1. .NetCore(Avalonia) 项目dll混淆,Ubuntu 或者deepin操作系统 deb安装包解压,重新打包

    .NetCore(Avalonia) 项目dll混淆,deb安装包解压,重新打包 本文分为两部分,一部分是介绍使用 DotNetReactor6.0 及以上版本混淆.netcore项目的dll. 另一 ...

  2. CallStub相关

    CallStub相关 调用入口 share/vm/runtime/stubRoutines.hpp // Calls to Java SimonNote: 函数指针结合typedef类型定义 type ...

  3. JDK1.8源码学习-String-hashCode方法为什么选择数字31作为乘子

    1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主 ...

  4. 【TTS】文本转语音?如何不调用第三方api来实现,使用pyttsx3

    @ 目录 前言 安装pyttsx3 实现TTS接口 后言 前言 本次的实现需求有点困难,所以也就记录下来,别到时候都忘了. 首先先不说正题,有兴趣的可以看一看: 1.目标是实现一个可以传一个文本就返回 ...

  5. 面试中HashMap链表成环的问题你答出了吗

    HashMap作为老生常谈的问题,备受面试官的青睐,甚至成为了面试必问的问题.由于大量的针对HashMap的解析横空出世,面试官对HashMap的要求越来越高,就像面试官对JVM掌握要求越来越高一样, ...

  6. css3新属性position: sticky 一分钟实现 导航栏悬停功能

    css3新属性position: sticky 一分钟实现 导航栏悬停功能 前言 正文 前言 想必很多前端小伙伴经常会在开发中遇到这样一个需求,就是在下划时,导航栏悬停在屏幕最上方,例如咱们的csdn ...

  7. 转圈游戏C++

    转圈游戏 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置, ...

  8. Shell编程—基础脚本

    1. 使用多个命令 如果要两个命令或者多个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. 2. 创建 shell 脚本文件 例如: #!/bin/bash # This script dis ...

  9. LG P6788 「EZEC-3」四月樱花

    Description 在樱花盛开的四月,Muxii 望着满天飘落的樱花,向身旁的 ZZH 问道: “究竟有多少朵樱花在这个四月飘落?” ZZH 答道:“樱花飘落的朵数  $s$与时间 $t$ 有如下 ...

  10. Docker 镜像构建之 docker commit

    我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求.尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完 ...