Python支持多种图形界面,有:第三方库有Tk、wxWidgets、Qt、GTK等。

  Python自带的库是支持Tk的Tkinter,无需安装任何安装包,就可以直接使用。

  在Python中使用函数调用Tkinter的接口,然后Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

  编写一个简单的GUI:

from Tkinter import *

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()
app = Application()
# 设置窗口标题:
app.master.title('Hello World')
# 主消息循环:
app.mainloop()

  在GUI中,每一个按钮、标签、输入框都是一个Widget。Frame是最大的Widget,它可以容纳其他的Widget。

  pack()方法是将已经创建好的Widget添加到父容器中,它是最简单的布局,grid()可以实现相对复杂的布局。

  在creatWidgets()方法中,创建的Button被点击时,触发内部的命令self.quit(),使程序退出。

  还可以增加输入文本的文本框:

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()获得用户输入的文本后,使用txMessageBox.showinfo()可以弹出消息对话框。

注:本文为学习廖雪峰Python入门整理后的笔记

最新文章

  1. 关于for循环的几个小练习,例如奇数偶数,阶乘,求和等
  2. C# 委托&事件
  3. 把某一字段更新为连续值的SQL
  4. python模块time&datetime&json & picle&14.logging等
  5. 【转】 GridView 72般绝技
  6. Html.TextBoxFor三元判断
  7. HttpClient 建立http连接,https连接,传输数据文件
  8. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.1 安装Oracle数据库软件和创建数据库概览)
  9. BT5之网络配置
  10. Windows 打开防火墙上的指定端口
  11. 请求方式:request和 get、post、put
  12. c++ 入门 之 hello world 和基本语法
  13. JVM 内存初学 堆(heap)、栈(stack)和方法区(method)
  14. Java链接DB2的4种基本类型【转】
  15. TCP/IP 笔记 - 概述
  16. 启动zookeeper时出现的问题
  17. 查找并修复Android中的内存泄露—OutOfMemoryError
  18. array_multisort 二维数组排序
  19. 正规表达式 转 NFA C++
  20. Spark的RDD原理以及2.0特性的介绍

热门文章

  1. js的dom操作和函数
  2. Redis和消息队列使用实战
  3. KeepAlived+Nginx实现高可用负载
  4. 关于php文件读取的一些学习记录
  5. 【SQL*PLUS】常规使用
  6. jquery layer弹窗弹层插件 (转)
  7. Andrew Ng机器学习课程笔记--汇总
  8. 卸载oracle 11g数据库
  9. pickle模块的使用python3
  10. UIGraphicsBeginImageContext - 位图上下文