用Tkinter打造GUI开发工具(3) Tkinter的小部件类

112 篇文章 45 订阅
106 篇文章 119 订阅

用Tkinter打造GUI开发工具(3) Tkinter的小部件类
从前面Tkinter的结构图可以看出,Tkinter的小部件都继承于Widget类。
Widget类的基类有BaseWidget类、Pack类、Place类、Grid类等。下面给出Widget类定义的代码。

class Widget(BaseWidget, Pack, Place, Grid):
    """Internal class.

    Base class for a widget which can be positioned with the geometry managers
    Pack, Place or Grid."""
    Pass

Widget类实际上只起封装BaseWidget类、Pack类、Place类、Grid类的作用,本身没有产生新方法。BaseWidget类又基于Misc类。
Pack类、Place类、Grid类用于管理小部件的放置方法。
Widget类基类包含BaseWidget类、Pack类、Place类、Grid类。
XView类和YView类用于关联Scrollbar部件的操作。
下面我们给出Tkinter的类定义。

class Misc
class Wm
class Tk(Misc, Wm)
class BaseWidget(Misc)
class Toplevel(BaseWidget, Wm)
class XView
class YView
class Pack
class Place
class Grid
class Widget(BaseWidget, Pack, Place, Grid)
class Frame(Widget)
class Button(Widget)
class Label(Widget)
class Checkbutton(Widget)
class Menu(Widget) 
class Menubutton(Widget)
class Message(Widget)
class Radiobutton(Widget)
class Scale(Widget)
class Scrollbar(Widget)
class LabelFrame(Widget)
class PanedWindow(Widget)
class Entry(Widget, XView)
class Spinbox(Widget, XView)
class Text(Widget, XView, YView)
class Canvas(Widget, XView, YView)
class Listbox(Widget, XView, YView)

Tkinter的部分小部件,除了继承Widget类外,还继承了XView类和YView类。

例如Text类,class Text(Widget, XView, YView)。

通过学习,我们可以掌握Tkinter的工作原理,部件之间的继承关系。今后掌握Tkinter编写程序大有帮助。
既然明白了Tkinter的工作原理,Tk主窗口主要是管理Tkinter应用程序,不用实例化Tk类,仍然可以创建Tkinter应用程序,只是我们没有更多的管理方法可用而已。
下面给出一个只有3行语句的Tkinter应用程序。

import tkinter as tk
label=tk.Label(text='这是Label测试\n最短的 Tkinter程序').pack()
tk.mainloop()

程序运行后会产生一个Tkinter窗口。
在这里插入图片描述
通过学习,对Tkinter有大致的了解。后面我们通过实例,详细介绍Tkinter部件的程序设计。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。 Python和VB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,因为最终实现的Python代码实在太短了(相比VB),有时候Python一行代码就可以实现VB一个函数的功能。 Python就是这种让人越用越开心的语言。 不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter使用起来非常简单,不过对于习惯了VB拖放控件完成界面设计的偶来说,还是不够人性化。TK也有一个工具GUI Builder,不过它使用Layout布局,不够直观,而且用起来很不爽。。 至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀, 而且不够环保,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。 所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个py文件到处运行(担心泄密就编译成pyc)。 很多人都认为TK的界面不够美观,不过我经过多次实验后发现导入Python自带的标准TTK主题库,界面非常Native,不输PyQt/wxPython。 此Addin默认启用TTK支持,也可选择关闭。 总而言之,轻量级GUI,TK+TTK足够。 使用此Addin,你可以不用写一句代码就可以生成一个完整可运行的Python的GUI界面,支持2.X和3.X。 安装方法:将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。 在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪贴板或保存至文件。 一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属性,并且修改,再生成代码。 当然除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多数人都不用的属性外,属性定义基本上是我从官方的tkinter文档直接翻译的。 如果还没有VB6,网上找一个VB6精简版即可,不到20M,小巧玲珑。 代码已经在Github上托管,更新的版本可以在这上面找到,需求也可以在上面提: https://github.com/cdhigh/Visual-Tkinter-for-Python

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷蒲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值