
Tkinter
面向对象思考
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python GUI编程入门(28)-Themed widget(续)
本文说明Ttk库中菜单按钮Menubutton、进度条Progressbar和组合列表框Combobox的用法。首先看视频:视频链接首先是菜单按钮Menubutton。代码中只是简单构建了一个退出菜单。menu = Menubutton(root, text="File")menu.grid(row=0, column=0, sticky=W)file_menu = Men...原创 2019-10-15 19:48:23 · 500 阅读 · 0 评论 -
Tkinter编程应知应会(16)-滚动条Scrollbar
滚动条也是常用控件的一种,它的动作和Scale控件有些类似,主要的区别是可以用滑块宽度(或高度)表现当前显示区域和整个区域的比例关系。Scrollbar的基本动作视频如下:视频链接首先构建一个用于显示信息的标签控件:label = Label(root, width = 50)label.grid(row=0, column=0, columnspan=2)接下来...原创 2019-09-03 19:30:30 · 1759 阅读 · 1 评论 -
Tkinter编程应知应会(17)-滚动条Scrollbar(续)
前一篇文章提供了封装之后的ScrollbarEx类,大大简化了Scrollbar控件的使用。但是这种做法并不是Tkinter想定的用法,Tkinter想定的方式是和其他控件绑定在一起使用。首先看动作视频:视频链接首先构建一个标题为'ScrollListBox'的标签框控件。这个控件实在是太简单了,因此只是在这里顺便提一下。frame1 = LabelFrame(root, te...原创 2019-09-04 18:49:43 · 505 阅读 · 0 评论 -
Tkinter编程应知应会(18)-边框控件Frame
在众多的控件中,边框控件Frame可以说是一个比较特别的一个。之所以这么说是因为Frame控件本身并不会被显示,功能只是为了将其他控件组织为一个整体以便进行布局管理。视频链接上面的视频是之前说明Text控件时使用的。当时使用的是grid布局,为了保证摆放足够数量的按钮,将Text控件的columnspan设置为8:# create text widget.text =...原创 2019-09-09 19:45:31 · 2308 阅读 · 0 评论 -
Tkinter编程应知应会(19)-分栏窗口控件PanedWindow
简单的对话框级别的布局一旦决定就不会再调整。但是对于类似IDE开发环境等更大的画面,可能需要动态调整功能分区的大小,这时就需要分栏窗口控件PanedWindow。使用这个控件调整画面分区大小的视频如下:视频链接这个控件的构建非常简单。代码中设定background属性并不是必须,只是为了表示控件的范围。paned_window = PanedWindow(root, bac...原创 2019-09-10 20:02:44 · 2301 阅读 · 0 评论 -
Tkinter编程应知应会(20)-主菜单
菜单是GUI程序的常用控件之一,本文说明Tkinter中如何使用菜单。还是先看示例视频:视频链接视频中的小程序是在之前的Text控件示例程序的基础上修改而成的,功能基本一致,只是增加了菜单操作的功能。读者可以稍微注意一下Enable/Disable按钮和菜单项的联动情况。首先是构建主菜单对象。代码一共分两步:一是以主窗口为参数构建一个菜单对象top_menu,二是用top_menu对象...原创 2019-09-18 19:20:04 · 6598 阅读 · 0 评论 -
Tkinter编程应知应会(21)-选项菜单和菜单按钮
除了标准菜单以外,有些情况可能还会需要菜单的变体。在Tkinter中就提供了两种常用的类菜单控件:选项菜单(OptionMenu)和菜单按钮(Menubutton)。先看动作演示视频,本文主要说明Text有效控制的OptionMenu和格式控制菜单按钮Format的实现方法。视频链接OptionMenu的动作有两个特点:一是可以显示一个下拉列表供用户选择,二是可以将选择结果表示在控件上。关...原创 2019-09-19 20:10:06 · 1668 阅读 · 0 评论 -
Tkinter编程应知应会(22)-Canvas控件
大部分情况下,使用控件就可以满足简单程序的需求,但是总会存在某些场景需要自己绘制一些内容,这时就需要使用Canvas控件了。例如下面的围棋表示程序。以下结合这个实例说明Canvas控件的基本用法。和使用其他控件一样构建主窗口:# create the main windowroot = Tk()决定棋盘路数和路间距:# conf...原创 2019-09-24 19:41:26 · 414 阅读 · 0 评论 -
Tkinter编程应知应会(23)-活用Canvas的对象tag
我们继续以围棋小程序为例说明Tkinter中Canvas控件的用法。当控件的内容表示之后,一般也需要根据用户的需要进行更新。本文介绍借助Tkinter提供的对象Tag来实现管理和控制Canvas对象的方法。首先还是动作的视频:视频链接为了方便管理程序中的数据,我们以Canvas为基类构建一个棋盘类:class GoBoard(Canvas): def _...原创 2019-09-25 19:55:20 · 1441 阅读 · 0 评论 -
Tkinter编程应知应会(24)-引入定时器功能
GUI程序除了要接受用户操作并提供必要的反馈之外,还经常需要自发地进行一些处理。对于大部分开发语言来讲引入一个定时器通常是最简单的选择。本文介绍如何Tkinter中定义和使用自己的定时器。下面的代码就是利用Tkinter控件的after功能实现的一个可复用的Timer类。class Timer: def __init__(self, wnd, ms, ca...原创 2019-10-09 19:53:22 · 843 阅读 · 0 评论 -
Tkinter编程应知应会(25)-移动Canvas对象
Canvas对象生成之后,有时会希望调整对象的位置。例如前面文章中提到的时钟小程序,我们稍加改造可以另外实现一个指针式时钟:在这个小程序中增加的功能就是根据具体时间计算每个指针的坐标信息,这部分功能在时钟类Clock中实现。这个Clock类修改自前一篇文章中的DitialClock类:class Clock: def __init__(self, canvas,...原创 2019-10-10 19:59:30 · 1217 阅读 · 0 评论 -
Tkinter编程应知应会(26)-通过OptionDB控制控件属性
到前一篇文章为止,我们基本上对Tkinter中的每一种基本控件都进行了简单的说明。在这些的示例代码中,用户可以通过属性控制每个控件的前景色,背景色,字体等各种属性。这种方式的直观易懂,但是存在几个缺点:1.即使希望同样的设定,也需要每个控件单独制定。2.设定信息淹没在代码中,无论是增减还是调整属性都需要修改代码。麻烦不说还有可能破坏代码的完整性。这两个问题都可以通过Tkinter提供的...原创 2019-10-11 19:39:43 · 1053 阅读 · 1 评论 -
Tkinter编程应知应会(15)-列表框控件Listbox
列表框控件作为一种常用的选择控件,可以用来实现单选或者多选功能。先看演示视频:视频链接首先是构建Listbox控件并添加列表项:# create a listbox for demo.lb = Listbox(root, activestyle='dotbox', bg="#ffffa0",fg="#ff0000", ...原创 2019-09-02 19:41:02 · 880 阅读 · 0 评论 -
Tkinter编程应知应会(14)-文本编辑控件Text
不同于Entry控件只能支持一行输入,文本编辑控件Text除了支持多行显示和编辑之外,同时支持撤销和重做,以及对于不同的部分设定不同的格式。本文的实例会介绍这些功能。以下是演示视频:视频链接Enbale按钮用于切换Text控件是否允许用户的编辑操作。由于Text的表示颜色不会因为状态的不同而不同,因此代码同时会调整Text控件的表示颜色。# change state funct...原创 2019-08-29 16:08:47 · 658 阅读 · 1 评论 -
Tkinter编程应知应会(13)-数值范围控件Scale
数值范围控件Scale可以用来调整数值的大小。本示例使用Scale控件控制标签字体的大小和颜色。以下是动作视频:视频链接首先准备各种信息列表并生成字体。#font setting.font_size = 12font_family = ['Times','Arial', 'Roma']font_weight = ['bold', 'normal']font_sla...原创 2019-08-27 19:26:57 · 638 阅读 · 0 评论 -
Tkinter编程应知应会(2)-HelloTkinter!
从C语言开始,学习一门编程语言的第一步一般是编写一段HelloWorld程序,我们继续这个传统,编写一个HelloTkinter程序。其代码如下:from tkinter import *# 构建主窗口main = Tk()# 构建标签Label(main, text='Hello Tkinter!').pack()# 构建退出按钮Button(main, text='Quit', c...原创 2019-07-30 20:04:46 · 458 阅读 · 0 评论 -
Tkinter编程应知应会(3)-pack布局管理器
重新审视一下前一篇文章中的代码:from tkinter import *# 构建主窗口main = Tk()# 构建标签Label(main, text='Hello Tkinter!').pack()# 构建退出按钮Button(main, text='Quit', command=main.quit).pack()# 执行主循环main.mainloop()程序在构建Labe...原创 2019-08-05 09:39:18 · 414 阅读 · 0 评论 -
Tkinter编程应知应会(4)-grid布局管理器
pack布局管理器是早期Tkinter中常用的一种布局方式。这种方式应对简单的情况很容易,但是随着要求越来越复杂,布局的难度会迅速提高。本文介绍另外一种方式:grid布局管理器。grid这个英文单词是格子,网格的意思。顾名思义,grid布局管理器的工作方式就是设想将父窗口空间划分为网格,并在网格中布置控件。例如如下的小窗口就可以看做一个三行两列的网格。这个画面可以用如下代码构建:...原创 2019-08-06 18:31:45 · 597 阅读 · 0 评论 -
Tkinter编程应知应会(7)-创建和使用标签控件
还是首先看视频。视频链接视频中一共构建了两个标签。第一个用于显示属性变更后的状态。# create a label to change state.label = Label(root,text="ColorLabel", background="#ffffa0",foreground="#ff0000", activebackground=...原创 2019-08-13 18:24:58 · 504 阅读 · 0 评论 -
Tkinter编程应知应会(5)-place布局管理器
place布局管理器是Tkinter支持的第三种布局管理器,它允许程序员直接指定控件的位置和大小。例如下面的代码:from tkinter import *root = Tk()# 绝对位置Button(root,text="绝对坐标摆放1").place(x=20, y=10, width=150, height=50)Button(root,text="绝对坐标摆放2"...原创 2019-08-07 18:16:17 · 570 阅读 · 0 评论 -
Tkinter编程应知应会(8)-创建和使用单行文本输入框
文本输入框是GUI编程中最常用的输入形式,Tkinter为此提供了Entry类。先看程序执行结果:首先是构建Entry对象,同样的手法,差不多的结果。# create fontftTimes = Font(family='Times', size=24, weight=BOLD)# create a label to change state.entry = Ent...原创 2019-08-14 18:20:04 · 1333 阅读 · 1 评论 -
Tkinter编程应知应会(9)-简易计算器(含源代码链接)
控件的学习进行到一定程度之后,就可以开始编写简单的应用了。我们的第一个应用是一个简易计算器。先看动画:视频链接首先是构建显示区。这个显示区实际上是由一大一小两个Label控件构成的:ftTimes12 = Font(family='Times', size=12, weight=BOLD)#createalabeltochangestate.upper_displa...原创 2019-08-20 18:27:12 · 453 阅读 · 1 评论 -
Tkinter编程应知应会(6)-构建按钮控件
GUI程序中最为常见的控件就是按钮,因此接下来的控件说明从按钮开始说起。先看程序的执行结果:视频连接代码如下,读者可以将这段代码直接拷贝并执行接口。from tkinter import *from tkinter.font import *root = Tk()# create fontftTimes = Font(family='Times', size=24...原创 2019-08-12 19:03:49 · 420 阅读 · 0 评论 -
Tkinter编程应知应会(10)-复选框
复选框CheckButton在其他开发语言中也被称为CheckBox,功能相对简单。还是先看视频:视频链接首先构建一个用于显示信息的标签对象。label = Label(root)label.grid(row=2, column=0, columnspan=2, sticky=E + W)准备一个整数变量,用于设定和取得复选框的状态。# control vari...原创 2019-08-21 20:28:16 · 675 阅读 · 0 评论 -
Tkinter编程应知应会(11)-单选按钮
和复选按钮相对应的就是单选按钮。先看动作视频:视频链接画面简单,代码也同样简单。首先构建字体和用于显示信息的Label控件。# create fontftTimes = Font(family='Times', size=12, weight=BOLD)# create Labellabel_text = StringVar()label = Label(root,...原创 2019-08-22 18:36:40 · 654 阅读 · 0 评论 -
Tkinter编程应知应会(12)-微调框Spinbox
Spinbox控件可以用来从一组数据中选择一个数,也可以用来对设定值进行微调。还是先看动作视频:视频链接首先还是准备字体和信息标签:# create fontftTimes = Font(family='Times', size=12, weight=BOLD)# create a label to display message.label_text = Stri...原创 2019-08-26 21:48:10 · 491 阅读 · 0 评论 -
Tkinter编程应知应会(1)-准备
Tkinter是Python语言中最基础的GUI库,它的优点是学习成本低,不需要特别安装,功能方面也足够应付一般的需求。从今天开始,我们开始一个使用Tkinter进行GUI编程的连载。首先看一个使用Tkinter开发的实例,接下来的说明都会结合这个程序。演示视频源代码下载本书中实战运用中提到的所有代码已经上传至GitHub。读者将下面链接中的代码下载到本地即可。https://gi...原创 2019-07-29 18:39:40 · 1344 阅读 · 3 评论