Tkinter教程 - 入门导读 目录树
Tkinter教程-入门导读
来自http://www.tpleina.com/2019/05/276411178.html
Python GUI
图形用户界面(Graphics User Interface, GUI),就是编程开发出客户端图形界面软件,如暴风语音、办公软件、迅雷、QQ、QQ音乐、酷狗音乐等软件
GUI编程属于C/S架构中服务端到客户端,与之相对立的是B/S架构服务端到浏览器端
说一下Python GUI编程,Python支持GUI开发,而且GUI库有很多,如:
- wxPython 一个跨平台的GUI编程库,是Python对跨平台的GUI库wxWidgets的封装
- PyGTk Python对GTk+ GUI库的封装
- PyQt Python对跨平台的GUI库Qt的封装实现,功能强大,可以用PyQt开发漂亮的界面,跨平台较好,但存在商业授权问题
- PySide 由Nokia提供的对Qt GUI库的另个封装库,成熟度不如PyQt
- Tkinter Python对Tk GUI库进行了封装
重点说一下Tkinter
Tkinter是Python GUI内置标准库(以上介绍的GUI库大多都是第三方库),Python对Tk GUI库进行了封装,Python集成了Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现,Tkinter的调用转换成Tcl命令,然后交给Tcl解释器进行解释,实现Python的GUI界面
Tkinter特点:
- Tkinter 快速入门、使用简单、构建图形界面简易
- Tkinter 多平台支持
- Python 自带的GUI库、内置标准库,不需下载安装
总结:使用Python开发复杂的桌面应用,不是Python的长处,但是开发一些带界面实用工具,使用Tkinter是不错的选择,完全能够胜任,涵盖GUI开发各方面功能,简单易学容易上手;如果有开发大型的、复杂、漂亮的图形界面的需要,推荐使用PyQt
Tkinter脑图
Tkinter入门示例
在网上找的Tkinter代码示例,感觉效果不错,代码结构微调,如下所示:
# -*- coding:utf-8 -*-
import Tkinter as Tk
from Tkinter import tTk
from Tkinter import scrolledtext
from Tkinter import Menu
from Tkinter import Spinbox
from Tkinter import messagebox as mBox
class ToolTip(object):
"""工具菜单栏"""
def __init__(self, widget):
self.widget = widget
self.tipwindow = None
self.id = None
self.x = self.y = 0
def showtip(self, text):
"Display text in tooltip window"
self.text = text
if self.tipwindow or not self.text:
return
x, y, _cx, cy = self.widget.bbox("insert")
x = x + self.widget.winfo_rootx() + 27
y = y + cy + self.widget.winfo_rooty() +27
self.tipwindow = tw = Tk.Toplevel(self.widget)
tw.wm_overrideredirect(1)
tw.wm_geometry("+%d+%d" % (x, y))
label = Tk.Label(tw, text=self.text, justify=Tk.LEFT,
background="#ffffe0", relief=Tk.SOLID, borderwidth=1,
font=("tahoma", "8", "normal"))
label.pack(ipadx=1)
def hidetip(self):
tw = self.tipwindow
self.tipwindow = None
if tw: tw.destroy()
def createToolTip(widget, text):
toolTip = ToolTip(widget)
def enter(