1. GUI概述

  GUI全称为Graphical User Interface,叫做图形用户界面,也是一种交互方式(Interaction)。早期计算机使用的命令行界面(command-line interface,简称CLI),图形界面对于用户来说在视觉上更易于接受。然而这种界面若要通过在显示屏的特性位置,以“各种美观而不单调的视觉消息“提示用户”状态的改变”,势必比简单的消息呈现上更有优势。

2.Python支持常用的GUI工具包

Tkinter 使用Tk平台 很容易得到 半标准
wxpython 基于wxWindows。跨平台越来越流行
Python Win 只能在Windows上使用 使用了本机的Windows GUI功能
Java Swing 只能用于Jython 使用本机的Java GUI
PyGTK 使用GTK平台 在linux上很流行
PyQt 使用QT平台 跨平台

Tkinter简介:
Tkinter模块(“Tk接口”)是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用。同样可以在应用在Windows和Macintosh系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好的运行在绝大多数平台中。

wxPython简介:
wxPython是一块开源软件,是Python语言的一套优秀的GUI图形库,运行Python程序员很方便创建完整的、功能健全的GUI用户界面。
Jython程序可以和Java无缝集成。除了一些标准模块、Jython使用Java的模块。Jython几乎拥有标准Python中不依赖于C语言的全部模块。比如:Jython的用户界面使用Swing,AWT或者SWT。Jython可以被动态或者惊天的编译成Java字节码。

Tkintter是内置到Python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写的。

3. 常用的Tkinter组件

控件类

  Label

  Button

  Entry

  Text

  CheckButton

  RadioButton

  Listbox

  Spinbox

  Menu

  Combobox

  Frame

数据显示

  表格数据

  树状数据

布局

  绝对布局

  相对布局

  表格布局

鼠标事件(event)

3. 实例方式

  这里的Tkinter只是一个简单的教程,详细教程可以参照其他教材。以2中的方式展开实例进行讲解。

4. 一个简单的示例进行开篇

  常用的Tkinter编码结构主要有一个大框架,分创建主窗口(这是整个代码的头部),设置标题,设置大小和位置,保持循环不让窗口关闭(这是整个代码的头部)。其中我们把想要现实的控件、事件等写在消息循环体内即可。其实和其他的GUI编程语言来说(比如:C#可以用拖拽的方式进行GUI编程)Python的GUI显得过于简单。不过正是这些简单可以更容易上手,使得一些“小”程序可以非常快的编辑处出来。另外编辑好后可以用pyinstaller等exe编辑文件生成exe等方式,在任何的系统当中可以直接作为一个独立的软件生成和使用。

  图示如下:

  

  举例代码:我们需要一个tkinter库,另外后面我还需要tkinter这个库下面的一个ttk子库

import tkinter

# 创建主窗口__编程头部
win = tkinter.Tk() # 设置标题
win.title("Thomas的窗口") # 设置大小和位置
win.geometry("400x400+200+0") #格式:400x400表示大小,200和0表示位置 # 进入消息循环 # 保持循环不让窗口关闭__编程尾部
win.mainloop()

Python笔记_第四篇_高阶编程_GUI编程之Tkinter_1.使用Python进行GUI编程的概述的更多相关文章

  1. Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速

    Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...

  2. Python开发【第十三篇】高阶函数、递归函数、闭包

    函数式编程是指用一系列函数解决问题 好处:用每个函数完成每个细小的功能,一系列函数任意组合能够解决大问题 函数仅仅接收输入并产生输出,不包含任何能影响输出的内部状态 函数之间的可重入性 当一个函数的输 ...

  3. python学习三十四天函数高阶函数定义及用法

    python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def tes ...

  4. Python笔记_第四篇_高阶编程_实例化方法、静态方法、类方法和属性方法概念的解析。

    1.先叙述静态方法: 我们知道Python调用类的方法的时候都要进行一个实例化的处理.在面向对象中,一把存在静态类,静态方法,动态类.动态方法等乱七八糟的这么一些叫法.其实这些东西看起来抽象,但是很好 ...

  5. Python笔记_第四篇_高阶编程_魔法(术)方法详解(重载的再详解)

    1. 魔法方法是什么? 魔法方法(Magic Method)是Python比较独特的应用,它可以给你的类增加特殊的方法,如果你的对象实现了(重载),这些方法中的某一个,就会被Python所调用.正如装 ...

  6. Python笔记_第四篇_高阶编程_再议装饰器和再议内置函数

    1. 概述: 我们在前面用了很多的装饰器这个工具的方法.这个位置要系统的讲一下装饰器. 1.2 为什么需要装饰器. 装饰器本质是一个Python函数,它可以让其他函数在不需要任何代码变动的前提下增加额 ...

  7. Python笔记_第四篇_高阶编程_正则表达式_2.正则表达式入门

    1. 匹配单个字符和数字: . --->> 匹配除换行符以外的任意字符.[0123456789] --->> []字符集合,表示匹配方括号中所包含的任意一个字符.[Thomas ...

  8. Python笔记_第四篇_高阶编程_GUI编程之Tkinter_3.数据显示

    1. 表格数据显示: 图示: 实例: import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 wi ...

  9. Python笔记_第四篇_高阶编程_进程、线程、协程_4.协程

    1.协程的概念: 子程序或者子函数,在所有语言中都是层级调用,比如A调用B,再B执行的过程中又可以调用C,C执行完毕返回,B执行返回,最后是A执行完毕返回.是通过栈来实现的,一个线程就是执行一个自称, ...

随机推荐

  1. nested exception is com.mongodb.MongoWaitQueueFullException: Too many operations are already waiting for a connection. Max number of operations (maxWaitQueueSize) of 500 has been exceeded.

    application.yml 添加后两行配置,增加连接池数量data: mongodb: host: *** database: *** port: 27017 username: *** pass ...

  2. UVA - 11181 Probability|Given (条件概率)

    题意:有n个人,已知每个人买东西的概率,求在已知r个人买了东西的条件下每个人买东西的概率. 分析:二进制枚举个数为r的子集,按定义求即可. #include<cstdio> #includ ...

  3. HTTP协议、时间戳

    1.什么是HTTP协议 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的 ...

  4. 全局唯一性ID生成方法小结

    全局ID通常要满足分片的一些要求:1 不能有单点故障.2 以时间为序,或者ID里包含时间.这样一是可以少一个索引,二是冷热数据容易分离.3 可以控制ShardingId.比如某一个用户的文章要放在同一 ...

  5. SQL的查询结果复制到Excel 带标题Head 有换行符导致换行错乱 的解决方案

    将SQL查询到的结果保存为excel有很多方法,其中最简单的就是直接复制粘贴了 1.带Head的复制粘贴 1)先左击红色区域实现选择所有数据 2)随后右击选择Copy with Headers  再粘 ...

  6. 关于fdisk命令

    fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区. [root@loclhost ~]# fdisk /dev/sdb Command (m for help): m #输入m列出常用的命令 C ...

  7. oracle 导入问题(imp)

    oracle 导入问题(imp) 1.密码过期 [oracle @oracle ~]$ imp graph/graph@orcl file=/tmp/neo4j.dmp full=y; 解决方案: 使 ...

  8. redis(七)---- SpringBoot和redis整合

    SpringBoot和Redis整合非常简单 添加pom依赖 <dependency> <groupId>org.springframework.boot</groupI ...

  9. UVA - 1630 Folding(串折叠)(dp---记忆化搜索)

    题意:给出一个由大写字母组成的长度为n(1<=n<=100)的串,“折叠”成一个尽量短的串.折叠可以嵌套.多解时可输出任意解. 分析: 1.dp[l][r]为l~r区间可折叠成的最短串的长 ...

  10. 洛谷 P2658 汽车拉力比赛

    题目传送门 解题思路: 二分答案,然后bfs验证,如果从一个路标可以达到其它所有路标,则答案可行.知道找到最佳答案. AC代码: #include<iostream> #include&l ...