本文是Python GUI系列的第一篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。
做为Python开发者,用户图形界面(GUI)是开发是必备技能之一。目前,市面上支持Python的“GUI工具包”很多,各有特点,虽然大多数工具包的基础类似,但要学习一个新包并掌握其细节还是非常耗时的,因此,在选用工具包时应仔细权衡。本章将介绍Python自带的GUI工具包TKinter. 参考网址(http://www.tutorialspoint.com/python/tk_scrollbar.htm)
********************************
本系列运行平台:Mac OS 10.13.4
Python 版本:3.6.4
********************************
Python的GUI库非常多,之所以选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,跨平台兼容性非常好,三则是从需求出发的,Python在实际应用中极少用于开发复杂的桌面应用,毕竟,Python的各种GUI工具包都“一般得很”,不具备优势。 关于GUI,泛泛而谈难免枯燥,鉴于此,本文将基于一实例来介绍GUI开发的过程。
做界面,首先需要创建一个窗口,Python Tkinter创建窗口很简单:(注意,Tkinter的包名因Python的版本不同存在差异,有两种:Tkinter和tkinter,读者若发现程序不能运行,可以尝试切换包名)
from Tkinter import*
#初始化Tk()
myWindow = Tk()
#进入消息循环
myWindow.mainloop()
运行结果:
上述程序创建的窗口是非常简陋的,有待进一步美化,设置标题、窗口大小、窗口是否可变等,涉及属性有:title(设置窗口标题); geometry(设置窗口大小); resizable(设置窗口是否可以变化长宽).如下实例:
from Tkinter import*
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
#设置窗口大小
myWindow.geometry('380x300')
#设置窗口是否可变长、宽,True:可变,False:不可变
myWindow.resizable(width=False, height=True)
#进入消息循环
myWindow.mainloop()
运行结果:
进一步,将窗口放置于屏幕中央,如下实例:
from Tkinter import*
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
#设置窗口大小
width = 380
height = 300
#获取屏幕尺寸以计算布局参数,使窗口居屏幕中央
screenwidth = myWindow.winfo_screenwidth()
screenheight = myWindow.winfo_screenheight()
alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2)
myWindow.geometry(alignstr)
#设置窗口是否可变长、宽,True:可变,False:不可变
myWindow.resizable(width=False, height=True)
#进入消息循环
myWindow.mainloop()
欢迎学习《Python快速学习》电子书
链接:https://gitbook.cn/gitchat/column/5ad56a79af8f2f35290f6535