Python支持多种图形界面的第三方库,包括:

Tk

wxWidgets

Qt

GTK

等等。

但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用。本章简单介绍如何使用Tkinter进行GUI编程。

Tkinter

我们来梳理一下概念:

我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口;

Tk是一个图形库,支持多个操作系统,使用Tcl语言开发;

Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

所以,我们的代码只需要调用Tkinter提供的接口就可以了。

第一个GUI程序

使用Tkinter十分简单,我们来编写一个GUI版本的"Hello, world!”。

第一步是导入Tkinter包的所有内容:

from Tkinter import *

第二步是从Frame派生一个Application类,这是所有Widget的父容器:

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.pack()

self.createWidgets()

def createWidgets(self):

self.helloLabel = Label(self, text='Hello, world!')

self.helloLabel.pack()

self.quitButton = Button(self, text='Quit', command=self.quit)

self.quitButton.pack()

在GUI中,每个Button、Label、输入框等,都是一个Widget。Frame则是可以容纳其他Widget的Widget,所有的Widget组合起来就是一棵树。

pack()方法把Widget加入到父容器中,并实现布局。pack()是最简单的布局,grid()可以实现更复杂的布局。

在createWidgets()方法中,我们创建一个Label和一个Button,当Button被点击时,触发self.quit()使程序退出。

第三步,实例化Application,并启动消息循环:

app = Application()

# 设置窗口标题:

app.master.title('Hello World')

# 主消息循环:

app.mainloop()

GUI程序的主线程负责监听来自操作系统的消息,并依次处理每一条消息。因此,如果消息处理非常耗时,就需要在新线程中处理。

运行这个GUI程序,可以看到下面的窗口:

点击"Quit”按钮或者窗口的"x”结束程序。

输入文本

我们再对这个GUI程序改进一下,加入一个文本框,让用户可以输入文本,然后点按钮后,弹出消息对话框。

from Tkinter import *

import tkMessageBox

class Application(Frame):

def __init__(self, master=None):

Frame.__init__(self, master)

self.pack()

self.createWidgets()

def createWidgets(self):

self.nameInput = Entry(self)

self.nameInput.pack()

self.alertButton = Button(self, text='Hello', command=self.hello)

self.alertButton.pack()

def hello(self):

name = self.nameInput.get() or 'world'

tkMessageBox.showinfo('Message', 'Hello, %s' % name)

当用户点击按钮时,触发hello(),通过self.nameInput.get()获得用户输入的文本后,使用tkMessageBox.showinfo()可以弹出消息对话框。

程序运行结果如下:

小结

Python内置的Tkinter可以满足基本的GUI程序的要求,如果是非常复杂的GUI程序,建议用操作系统原生支持的语言和库来编写。

python界面-图形界面相关推荐

  1. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  2. python使用界面-推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  3. python打代码运行图形_利用aardio给python编写图形界面

    前阵子在用python写一些小程序,写完后就开始思考怎么给python程序配一个图形界面,毕竟控制台实在太丑陋了. 于是百度了下python的图形界面库,眼花缭乱的一整页,拣了几件有"特色& ...

  4. Python学习:图形界面设计01

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: Python实现输入电影名字自动生成豆瓣评论词云图 ...

  5. python界面-推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  6. python怎么做图形界面-图形界面

    Python支持多种图形界面的第三方库,包括: Tk wxWidgets Qt GTK 等等. 但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用. ...

  7. python的图形界面库wxpython的快速简单使用

    简介 使用python来写小型软件简便而且快速,为其添加界面则是必不可小的.现在说一下wxpython的使用. wxpython是一个第三方的库,可以编写任意复杂的界面,但是对于刚入门的新手来说,如何 ...

  8. Python GUI图形界面开发学习

    Python图形化界面设计 窗体控件布局 #coding:utf-8from tkinter import * root= Tk() root.title('我的第一个Python窗体') root. ...

  9. python学习——图形界面

    Python支持多种图形界面的第三方库,包括: Tk wxWidgets Qt GTK 等等. 但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用. ...

最新文章

  1. Surface Shading in Tiger Book
  2. 【BZOJ】1692: [Usaco2007 Dec]队列变换
  3. LeetCode 212. 单词搜索 II(Trie树+DFS)
  4. 计算机东大计算机三在线作业,东大16秋学期《计算机基础》在线作业3
  5. 【英语学习】【Daily English】U10 Education L03 She's planning to study abroad
  6. 给Repeater、Datalist和Datagrid增加自动编号
  7. 绿油损耗大于大多数高速板材,对于高度板材而言,绿油带来的损耗会更明显
  8. 宾馆客房管理系统设计
  9. 中国30家值得信赖的大数据采集公司汇总!
  10. Latex排版—(1)基础排版
  11. 关于太阳(卫星)天顶角,太阳高度角,太阳方位角
  12. 华三防火墙安全策略配置
  13. PC端工具 WP7 PC端截图工具WP7 Screen recorder 发布 附使用教程
  14. 用OpenGL导演一场烟花盛会,迎接即将到来的新年
  15. 网络游戏的基本数据埋点和数据统计---2016/7/25
  16. 学习笔记【基金】【理财】【定投】...
  17. 图像处理: 无损地旋转图像
  18. 关于jsp中java代码的使用;
  19. PostgreSQL全局替换字符串函数
  20. redist 在linux上的安装教程

热门文章

  1. 数学趣事(自然数的因数)
  2. 图像变换——图像反转
  3. 数据挖掘项目:银行信用评分卡建模分析(下篇)
  4. 一种定力夹具控制系统
  5. IntelliJ IDEA快速自动生成Junit测试类
  6. Linux 高阶命令进阶(一)
  7. python中matplotlib 的简单使用
  8. Always On 集群监听创建失败问题
  9. Wing IDE注册破解方法
  10. 支付宝手机网站即时交易 自己封装的类