专栏首页算法channelPython-GUI|Tkinter模块

Python-GUI|Tkinter模块

01

Tkinter

Tkinter模块是Python的标准Tk GUI工具包的接口,它并不是必须掌握的,但是掌握一个Python的标准图形库还是非常有意思的一件事

它可以跨平台运行在Windows,Linux和Mac等系统上。

这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么!

02

第一个Tk-GUI

from tkinter import * root=Tk() root.title('first tk gui') root.geometry('500x200') x = Label(root,text='Hello',bg='green',font=('Arial',12),width=15,height=2) x.pack() x.mainloop()

首先导入tkinter 模块,这个模块包括了所需要的所有的类和函数

然后,需要创建一个(根)窗口,它是一个普通的窗口,带有标题栏、最小化按钮、最大化按钮等,即:root = Tk() ,调用title接口,geometry分别设置根窗口的标题,大小。

然后我们就可以在该窗口上创建一个Label,即贴一个标签,这个Label可以显示文本、图标、图像等等。我们这里使用text来指定要显示的文本,而第一个参数root,表明x的父控件是root,bg属性表示label的背景色,font指明文本所用字体,width,height指明label的宽度和高度。

接下来,调用这个Label的pack方法,pack方法属于Pack类(属于几何管理器), tk中的每一个控件都继承自 class Widget(BaseWidget, Pack, Place, Grid),Widget都继承于Pack,Place,Grid,它们都属于几何管理器类。

最后一行代码,x.mainloop()即可进入事件循环了,mainloop定义在Misc类中(Methods defined on both toplevel and interior widgets)。

这样一个最简单的界面程序就完成了。

03

梳理第一个GUI用到的类

Wm (Provides functions for the communication with the window manager);Misc (Methods defined on both toplevel and interior widgets)

|

|---BaseWidget

|

|---Widget

| Pack, Grid, Place

| | | |

|------- Label

04

Tkinter控件梳理

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 用于显示你应用程序的消息框。

05

Tkinter共用属性

Dimension 控件大小;

Color 控件颜色;

Font 控件字体;

Anchor 锚点;

Relief 控件样式;

Bitmap 位图;

Cursor 光标;

本文分享自微信公众号 - 算法channel(alg-channel),作者:alg-flody

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python-GUI|Label显示图片,Pack布局控件

    01 Label显示图片 Label显示文本很简单,直接在构造中将text显示地赋值。 如果Label显示成图片,如何设置? PhotoImage构造出图片,...

    double
  • Python-GUI|生成菜单,封装自己的控件

    01 创建菜单 Tk中菜单控件封装在Menu类中。 menubar = Menu(parent) 上面代码指定menbar为Menu,且父控件为parent ...

    double
  • Python-GUI|Tk类,属性文档使用指南

    这是一篇tkinter相关API的介绍性地帮助文档,包括常用的包,类结构图,属性取值等,可以作为一个工具文档,供大家查阅。 01Tk中的包 __main...

    double
  • Qt编写控件属性设计器9-数据库采集

    数据库作为数据源,在很多组态软件中使用非常多,指定数据库类型,填写好数据库连接信息,指定对应的数据库表和字段,采集间隔,程序按照采集间隔自动采集数据库数据,绑定...

    feiyangqingyun
  • Qt编写控件属性设计器5-属性中文

    在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中...

    feiyangqingyun
  • C# C/S控件库HZHControls使用指南

    HZHControls是一个基于.Net Framework4.0,扁平化的、漂亮的、开源的C/S控件库,这是官网的介绍,也就是作者专门开发的一套可以在C/S客...

    zls365
  • Qt编写控件属性设计器1-加载插件

    加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做....

    feiyangqingyun
  • Qt编写控件属性设计器6-动态属性

    之前就提过,Qt的属性机制强大到爆,这次的动态属性功能就是要让他爆,很难想象只要一行代码即可widget->setProperty("value", value...

    feiyangqingyun
  • ASP.NET验证控件的使用

    自认为做了几年Web,就很了解Asp.net,但最后才发现不是这个样子的。首先没有系统的学习,其次没有深入的实践,从学校到公司,一直在使用别人写好的控件...

    thz
  • Android开发笔记(一百四十九)约束布局ConstraintLayout

    约束布局ConstraintLayout是Android Studio 2.2推出的新布局,并从Android Studio ...

    用户4464237

扫码关注云+社区

领取腾讯云代金券