链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
0. 前言
本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件:
电脑中已经安装配置好Python3环境
了解Python3的基础语法,比如导入模块,基础语句,面向对象
学习GUI编程指南:
在这个GUI领域QT横行的年代,依旧有学习tkinter的价值。要学习GUI编程,你大概会经历这样一条路径:
认识tkinter模块,写一个简单GUI程序
认识各种控件、学习布局、使用容器
实战以检验动手能力和想象力
PS:你可能还需要了解一些消息驱动的知识
下面我们进入正式的学习。
- 认识Tkinter模块,写一个简单的GUI程序
import tkinter as tk # 引入tkinter模块,并命名为tk
win = tk.Tk() # 创建主窗口
win.mainloop() # 进入消息循环,显示窗口界面
要是用tkinter,首先引入该模块,为了方便命名为tk。
使用tk的一般套路是,先创建一个主窗口,也就是一个Tk()类, 进行一些列操作之后需,进入消息循环。
现在我们来做点简单的事:
import tkinter as tk # 引入tkinter模块,并命名为tk
win = tk.Tk() # 创建主窗口
win.title(“Hello”) # 标题
win.geometry(“400x400+400+200”) # 大小和位置
text = “Hello, Majesty!” # 要显示的内容
b = tk.Label(win, text=text).pack()
进入消息循环,显示窗口界面
win.mainloop()
你可以将上述代码保存在一个扩展名为pyw的的文件里,这样,这个程序可以双击启动,而且在启动时不会开始命令行(也就是不会弹出小黑框)。体验一下你就知道我在说什么了~
- 认识控件
在上边的代码中我们使用了Label控件,Label控件是Tk最常用的组件之一,可以用来显示文本和图片等。在tkinter中,一共提供了15个控件,下面我们来认识一下它们。
控件名称
描述
Button
按钮控件;在程序中显示按钮。
Canvas
画布控件;在窗口中画图,如线条等元素
Checkbutton
多选框控件;用于在程序中提供多项选择框
Entry
输入控件;用于显示简单的文本内容
Frame
框架控件;在屏幕上定义一个区域,用来作为容纳其他控件的容器
Label
标签控件;可以显示文本和位图
Listbox
列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
Menubutton
菜单按钮控件,由于显示菜单项。
Menu
菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message
消息控件;用来显示多行文本,与label比较类似
Radiobutton
单选按钮控件;显示一个单选的按钮状态
Scale
滑动条控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar
滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text
文本控件;用于显示多行文本
Toplevel
容器控件;用来提供一个单独的对话框,和Frame比较类似
除此之外,你可能还需要了解一下上述控件都具有的共同属性,如下表:
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。
属性
描述
anchor
锚位:定位控件在窗口子内的位置。
background(bg)
背景颜色:用来定义控件的背景颜色
bitmap
位图:定义显示在控件中位图文件
borderwidth
边框宽度:定义控件的边框宽度
command
命令:指定特定的函数
cursor
光标:当鼠标指针经过控件时鼠标指针的类型
font
控件字体:用来定义控件上显示的字体,包括字体,大小,样式
foreground(fg)
前景颜色:定义控件的前景(字体)颜色
height
高度:定义控件的高度
image
图像:定义显示在控件内的图片文件
justify
对齐:定义多行文字标题的排列方式
padx
水平距离:定义控件内文字或图片与控件边框之间的水平距离。
pady
垂直距离&