Python可用的GUI编程的包很多,Tkinter也是其中一个半标准的工具包。

作为一个老牌的Python GUI工具包(皮皮书屋里找了本书,竟然是2001年的),它由Tk GUI包装而来。在Windows版里面已经包括了,不用单独下载。

用Tkinter实现一个简单的GUI程序,单击click按钮时会在终端打印出’hello world’:

__author__ = 'fyby'

from Tkinter import * #引入Tkinter工具包

defhello():print('hello world!')

win= Tk() #定义一个窗体

win.title('Hello World') #定义窗体标题

win.geometry('400x200') #定义窗体的大小,是400X200像素

btn= Button(win, text='Click me', command=hello)#注意这个地方,不要写成hello(),如果是hello()的话,#会在mainloop中调用hello函数,#而不是单击button按钮时出发事件

btn.pack(expand=YES, fill=BOTH) #将按钮pack,充满整个窗体(只有pack的组件实例才能显示)

mainloop()#进入主循环,程序运行

当我们写一个较大的程序时,最好将代码分成一个或者是几个类,再看一下Hello World例子

#-*- encoding=UTF-8 -*-

__author__ = 'fyby'

from Tkinter import *

classApp:def __init__(self, master):#构造函数里传入一个父组件(master),创建一个Frame组件并显示

frame =Frame(master)

frame.pack()#创建两个button,并作为frame的一部分

self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)

self.button.pack(side=LEFT) #此处side为LEFT表示将其放置 到frame剩余空间的最左方

self.hi_there = Button(frame, text="Hello", command=self.say_hi)

self.hi_there.pack(side=LEFT)defsay_hi(self):print "hi there, this is a class example!"win=Tk()

app=App(win)

win.mainloop()

看完了上面两个无聊的Hello World例子,再来看一个稍微Perfect点的东西吧。Menu组件,自己画一个像样点的程序外壳。

#-*- encoding=UTF-8 -*-

__author__ = 'fyby'

from Tkinter import *root=Tk()defhello():print('hello')#创建一个导航菜单

menubar =Menu(root)

menubar.add_command(label="Hello!", command=hello)

menubar.add_command(label="Quit!",command=root.quit)

root.config(menu=menubar)

mainloop()

这个程序还是有点无趣,因为我们只是创建了一个顶级的导航菜单,点击后只是在终端中输出hello而已,下面来创建一个下拉菜单,这样才像一个正儿八经的应用

在下面的这个例子中,会创建三个顶级菜单,每个顶级菜单中都有下拉菜单(用add_command方法创建,最后用add_cascade方法加入到上级菜单中去),为每个下拉选项都绑定一个hello函数,在终端中打印出hello.

root.quit是退出这个Tk的实例。

#-*- encoding=UTF-8 -*-

__author__ = 'fyby'

from Tkinter import *root=Tk()defhello():print('hello')defabout():print('我是开发者')

menubar=Menu(root)#创建下拉菜单File,然后将其加入到顶级的菜单栏中

filemenu = Menu(menubar,tearoff=0)

filemenu.add_command(label="Open", command=hello)

filemenu.add_command(label="Save", command=hello)

filemenu.add_separator()

filemenu.add_command(label="Exit", command=root.quit)

menubar.add_cascade(label="File", menu=filemenu)#创建另一个下拉菜单Edit

editmenu = Menu(menubar, tearoff=0)

editmenu.add_command(label="Cut", command=hello)

editmenu.add_command(label="Copy", command=hello)

editmenu.add_command(label="Paste", command=hello)

menubar.add_cascade(label="Edit",menu=editmenu)#创建下拉菜单Help

helpmenu = Menu(menubar, tearoff=0)

helpmenu.add_command(label="About", command=about)

menubar.add_cascade(label="Help", menu=helpmenu)#显示菜单

root.config(menu=menubar)

mainloop()

写了这一些,差不多对Tkinter有了一个大体的印象了。在Python中用Tkinter绘制GUI界面还是蛮简单的。再把上面的例子扩展一下,和Label标签结合,当单击about的时候,在窗体上打印About的内容,而不是在终端输出。将about函数稍微修改一下。单击about以后将会调用about函数渲染frame绘制一个标签并显示其内容。

defabout():

w= Label(root,text="开发者感谢名单\nfuyunbiyi\nfyby尚未出现的女朋友\nhttp://www.programup.com网站")

w.pack(side=TOP)

用python做tkinter_Python下用Tkinter进行GUI编程相关推荐

  1. Python基于tkinter的GUI编程讲座

    Python基于tkinter的GUI编程讲座 图形用户界面(GUI.Graphical User Interface)是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于字 ...

  2. Python 基于tkinter的GUI编程

    tkinter是Python的标准GUI库 加载tkinter模块 Tk():创建应用程序主窗口 tkinter控件(组件.窗口部件) Label控件(标签) 示例代码 **(文本显示)** 示例代码 ...

  3. 不愧是大佬用Python做一个游戏辅助脚本,完整编程思路分享!

    一.说明 简述:本文将以4399小游戏< 宠物连连看经典版2 >作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助.文末有Python资料和 ...

  4. python做运动控制_ROS探索总结-61.MoveIt!编程驾驭机械臂运动控制

    ROS探索总结-61.MoveIt!编程驾驭机械臂运动控制 说明: 介绍MoveIt!编程驾驭机械臂运动控制 正文 本讲我们将从以下四个部分进行讲解. 首先来回顾下MoveIt!编程接口的框架. Mo ...

  5. python 找到目录下文件名规则_假如编程是魔法之零基础看得懂的Python入门教程 ——(二)魔法实习生第一步了解魔杖的使用...

    学习目标 了解什么是开发环境 了解python语言的环境安装 了解python语言编程的编辑器工具 一.打怪升级你先得了解武器使用的条件 对于很多第一次学习编程的同学对于很多定义性的概念大多都不了解, ...

  6. python弹出窗口后卡死_python的tkinter模块GUI编程为啥用了while循环之后就会使得程序出现卡死未响应崩溃?...

    这位同学,首先无代码无真相.只能在这里猜测一下,你在GUI界面中点击了某个按钮,调用的函数然后触发了某种while循环,这个时候前台GUI将"未响应"卡死.不过一旦调用函数的whi ...

  7. python3遍历选中文件夹下的文件【GUI编程】

    功能介绍 如标题 使用截图 1.第一步:运行python程序 2.第二步:点击按钮选中文件夹 3.运行结束: 1. 显示选中文件夹路径 2. 遍历打印文件夹内文件 代码 import os#程序功能 ...

  8. 嵌入式成长轨迹23 【Linux应用编程强化】【Linux下的C编程 下】【Linux GUI编程】...

    一   GTK+/Gnome开发简介 GTK+是一个用于创建图形用户界面(GUI)的图形库,它在功能上类似微软的MFC,为应用程序提供了一套与平台无关的图形用户接口.GTK+最初用于开发GIMP(Ge ...

  9. 2000页Python系列PPT分享九:(GUI编程)(122页)

    总体说明:本套PPT共约2000页,包含董付国老师Python系列图书<Python程序设计基础(第2版)>(2018年8月第4次印刷).<Python程序设计(第2版)>(2 ...

最新文章

  1. 客户端读写hdfs数据
  2. 398. Random Pick Index - LeetCode
  3. 读《Linux内核设计与实现》我想到了这些书
  4. Elasticsearch-PHP实战操作
  5. 【数字信号处理】相关函数 ( 有限信号 | 有限信号的自相关函数 )
  6. SharePoint 2013 图文开发系列之WebPart
  7. 系统盘压缩卷小于可用空间_操作系统中的可用空间管理
  8. 构造函数与toString
  9. TCP/IP数据包结构详解
  10. 今天遇到了一个很坑爹的问题....
  11. js与html页面分开,javascript – 当画布分割在多个页面上时,如何在使用html2canvas和jspdf时添加上边距?...
  12. 定位排除数据库故障_对数据库邮件故障进行故障排除
  13. PHP数据结构预热:PHP的迭代器(转)
  14. 安卓4.4不支持touchend事件解决办法
  15. LeetCode—Python版数组简单题(一)
  16. python set集合转numpy.array
  17. 四、登录注册页功能实现《iVX低代码/无代码个人博客制作》
  18. 对抗样本生成算法-FGSM、I-FGSM、ILCM、PGD
  19. 直击备份恢复的痛点:基于 TiDB Binlog 的快速时间点恢复
  20. join有哪几种方式?内外连接有什么区别?

热门文章

  1. 月薪11万招数据工程师,看到要求我傻眼了!
  2. 浙大29岁“粉色系”女博导获百万大奖!最爱少女粉的她,既是实验高手还是个“大厨”......
  3. 美国夫妇用数学算法买彩票赢1.74亿元——网友:现在学数学还来得及吗?
  4. 那些女程序员们的故事
  5. 代价敏感多标签主动学习的代码开发跟踪
  6. java.equal例子_Java中的== 和equals()方法详解与实例
  7. 23种设计模式之访问者模式
  8. NS2相关学习——完成一个新协议(3)
  9. 快速排序的实现--代码
  10. 用行为树的方式思考问题