python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
全栈工程师开发手册 (作者:栾鹏)
python的GUI界面编程,常用的几个python库包含如下:
Tkinter:
Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
wxPython:
wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python程序员很方便的创建完整的、功能键全的 GUI 用户界面。
Jython:
Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者SWT。Jython 可以被动态或静态地编译成 Java 字节码。
Tkinter界面库
今天我们主要介绍一下Tkinter,在库中定义了一些基础控件对象,和组合控件对象。可以在创建控件时传递控件属性,也可以在创建了控件对象以后,再设置属性。
窗口的GUI编程主要包含的知识点为窗口(顶层容器)、容器、组合控件、控件、控件属性、控件函数。本文提供了一个demo,包含了对顶层窗口、基础控件(标签、按钮)、组合控件(比例尺控件、NumericUpDown控件、ComboBox)、控件的属性(文本、位置)、控件函数(按钮点击事件)等内容的编程示例。
主要的控件
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 光标;
虽然python可以进行界面GUI设计,不过个人觉得界面设计还有net更牛逼一些。
python2.7下的代码
#coding:utf-8
from Tkinter import * #控件基础包,导入这个包后,这个包下的所有函数可以直接调用
import Tkinter
from Tkinter import Label, Button, END
from Tix import Tk, Control, ComboBox #升级的组合控件包
from tkMessageBox import showinfo, showwarning, showerror #各种类型的提示框
#除此之外还有很多界面编程的包
#顶层窗口
top = Tkinter.Tk() #创建顶层窗口
top.geometry('250x150') #初始化窗口大小
top.title("标题")
top.tk.eval('package require Tix') #引入升级包,这样才能使用升级的组合控件
#标签控件
label = Tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #创建标签
label.pack(fill=Y, expand=1) #填充到界面
#按钮控件
button = Tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #创建按钮,command为回调函数
button.pack(fill=Tkinter.X, expand=1) #fill=tkinter.X表示横向拉伸完全
#自定义函数,控制控件的缩放
def resize(ev=None):
label.config(font='Helvetica -%d bold' % scale.get())
#比例尺控件
scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #缩放比例尺
scale.set(12) #初始值
scale.pack(fill=X, expand=1) #填充到界面
#NumericUpDown控件
ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)
ct.label.config(font='Helvetica -14 bold')
ct.pack()
#ComboBox控件
cb = ComboBox(top, label='Type:', editable=True)
for animal in ('dog', 'cat', 'hamster', 'python'):
cb.insert(END, animal)
cb.pack()
Tkinter.mainloop() #运行这个GUI应用
在python3中,
Tkinter改成了tkinter,
Tix改成了tkinter.tix,
tkMessageBox 改成了tkinter.messagebox
python3.6下代码
#coding:utf-8
#GUI界面编程
from tkinter import * #控件基础包,导入这个包后,这个包下的所有函数可以直接调用
import tkinter
from tkinter import Label, Button, END
from tkinter.tix import Tk, Control, ComboBox #升级的组合控件包
from tkinter.messagebox import showinfo, showwarning, showerror #各种类型的提示框
#除此之外还有很多界面编程的包
#顶层窗口
top = tkinter.Tk() #创建顶层窗口
top.geometry('250x150') #初始化窗口大小
top.title("标题")
top.tk.eval('package require Tix') #引入升级包,这样才能使用升级的组合控件
#标签控件
label = tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #创建标签
label.pack(fill=Y, expand=1) #填充到界面
#按钮控件
button = tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #创建按钮,command为回调函数
button.pack(fill=tkinter.X, expand=1) #fill=tkinter.X表示横向拉伸完全
#自定义函数,控制控件的缩放
def resize(ev=None):
label.config(font='Helvetica -%d bold' % scale.get())
#比例尺控件
scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #缩放比例尺
scale.set(12) #初始值
scale.pack(fill=X, expand=1) #填充到界面
#NumericUpDown控件
ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)
ct.label.config(font='Helvetica -14 bold')
ct.pack()
#ComboBox控件
cb = ComboBox(top, label='Type:', editable=True)
for animal in ('dog', 'cat', 'hamster', 'python'):
cb.insert(END, animal)
cb.pack()
tkinter.mainloop() #运行这个GUI应用
python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解相关推荐
- python中迭代器的实现原理_Python 进阶应用教程
Python 中的迭代器实现原理 在数学中,集合表示由一个或多个确定的元素所构成的整体.在 Python 中,列表.元组.集合可以用于表示数学中的集合. 例如,分别使用列表.元组.集合表示了一个包含 ...
- python采集修改原创_python应用系列教程——python中ftp操作:连接、登录、获取目录,重定向、上传下载,删除更改...
python中ftp操作: ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect("IP"," ...
- python中list是什么类型_Python 入门系列 —— 13. List 类型简介
List List 常用于将多个值存储在一个变量中,在 Python 中 List 是四个内建集合之一,其他三个为:Tuple,Set 和 Dictionary,它们都有不同的特性和用途. List ...
- python中iloc的详细用法_python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)...
df是一个dataframe,列名为A B C D 具体值如下: A B C D 0 ss 小红 8 1 aa 小明 d 4 f f 6 ak 小紫 7 dataframe里的属性是不定的,空值默认为 ...
- python中如何计算集合的长度_Python如何计算序列长度 python dataframe中元素如何统计?...
如何在python列表中查找某个元素的索引 方法二:利用enumerate函数.没有任何一个男人,可以游手好闲赢得女人的欣赏. python dataframe中元素如何统计? 比如我有一个数据集a, ...
- 在python中浮点数怎样转整数_python 浮点数 转 整数python函数每日一讲 - all()
W WW.002pc .COM对<python 浮点数 转 整数python函数每日一讲 - all()>总结来说,为我们python培训很实用. all(iterable) 版本:该函数 ...
- python在手机上可以画图吗_python简单画图教程!python怎么在屏幕上画图
python的tutle画图教程? 是turtle海龟画图,import turtle调用模块 内置一些函数,可以自己依据需求加入,网上有教程的 什么,Python可以画图写报告 是的,比如matpl ...
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
最新文章
- 岗位推荐 | 腾讯音乐娱乐招聘推荐算法工程师、推荐后台工程师
- r语言 去除双引号_tidyfst vs pandas(12):去除重复条目
- 时间序列数据卡尔曼滤波_使用Highcharts和InfluxDB可视化时间序列数据
- java关于Timer schedule执行定时任务 1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等...
- HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)
- Axure自动幻灯片制作
- Jenkins中使用scm拉取代码
- 计算时间的20个常用代码段
- tp 框架防sql注入
- C语言程序设计精髓--第3周编程题在线测试
- WinDbg非常简单的调试dmp文件
- YOLOv5的head详解
- excel查找出不来了_Excel查找全部,如何把查找出来内容全部复制?
- 计算机科学与技术有关参考文献,计算机科学与技术毕业论文参考文献示例
- glog使用与说明(转载)
- OSGearth学习(一)
- 转载:GPS卫星 星历与历书的区别(为了方便在navcen官网下载GPS历书后不知道具体含义的)
- 微信小程序设置横竖屏
- position:fixed 固定定位
- 月薪2万的Java工程师简历是这样的