加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python入门示例系列31 GUI Tkinter 入门

发布时间:2023-04-18 12:53:44 所属栏目:教程 来源:
导读:Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。可以在IDLE或Pycharm中编写和测试Tkinter代码。

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 im
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。可以在IDLE或Pycharm中编写和测试Tkinter代码。

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

创建一个GUI程序的基本步骤:

1、导入 Tkinter 模块;创建窗体。
2、创建控件,并且指定这个控件的 master, 即这个控件属于哪一个容器。
3、告诉 GM (geometry manager) 有一个控件产生了。
 示例:创建一个窗体。

import tkinter
top = tkinter.Tk()
# 进入消息循环
top.mainloop()
结果如下:

设置窗体的大小和位置, geometry函数的使用

from tkinter import *
root = Tk()
root.geometry('+400+200') # 位置 x=400像素,y=200像素; 位置以屏幕左上角为起始点(0,0).窗口在屏幕上的位置,第1个加号是距离屏幕左边的宽,第2个加号是距离屏幕顶部的高。单位是像素
root.geometry('400x200') # 宽400像素,高200像素
root.geometry('400x200+400+200') #  宽400像素,高200像素 位置 x=400像素,y=200像素
root.mainloop()
 
设置窗体大小并让窗体在屏幕中居中:

import tkinter
win = tkinter.Tk()
sw = win.winfo_screenwidth() #得到屏幕宽度
sh = win.winfo_screenheight() #得到屏幕高度
ww = 100
wh = 100
x = (sw-ww) / 2
y = (sh-wh) / 2
win.geometry("%dx%d+%d+%d" %(ww,wh,x,y))
win.mainloop()
 
import tkinter
#from tkinter import *
mywin = tkinter.Tk()
mywin_width = 300
mywin_heigth = 200
mywin.geometry("%dx%d+%d+%d" %(mywin_width,mywin_heigth,(mywin.winfo_screenwidth()-mywin_width) / 2,(mywin.winfo_screenheight()-mywin_heigth) / 2))
mywin.mainloop()
 
StringVar是Tk库内部定义的字符串变量类型,用于管理部件上面的字符;不过一般用在按钮button上。改变StringVar,按钮上的文字也随之改变。

我们在使用界面编程的时候,有些时候是需要跟踪变量的值的变化,以保证值的变更随时可以显示在界面上。由于python无法做到这一点,所以使用了tcl的相应的对象,也就是StringVar、BooleanVar、DoubleVar、Intvar所需要起到的作用。

StringVar除了set以外还有其他的函数包括:get()用于返回StringVar变量的值、trace(mode, callback) 用于在某种mode被触发的时候调用callback函数。

Tkinter 组件
Tkinter 的提供各种控件(widget),如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。

目前有18种 Tkinter的部件(widget)。我们提出这些部件以及一个简短的介绍,在下面的表:

控件widget    描述
Button    按钮控件;在程序中显示按钮。 Button用法介绍
Canvas    画布控件;显示图形元素如线条或文本。在Canvas中可以画图,类似于 turtle 的画布。
Checkbutton    多选框控件;用于在程序中提供多项选择框。复选框按钮。
Entry    输入控件;用于显示简单的文本内容。类似于html中的 input Box,textBox   用法介绍
Frame    框架控件;在屏幕上显示一个矩形区域,多用来作为容器。可以包含其他控件。
Label    标签控件;可以显示文本和位图。静态文本或图。 用法介绍
ListBox    列表框控件;在ListBox窗口小部件是用来显示一个字符串列表给用户
Menubutton    菜单按钮控件,用于显示菜单项。
Menu    菜单控件;显示菜单栏,下拉菜单和弹出菜单(Python Tkinter 菜单示例 )
Message    消息控件;用来显示多行文本,与label比较类似
Radiobutton    单选按钮控件;显示一个单选的按钮状态
Scale    范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar    滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text    文本控件;用于显示多行文本
Toplevel    容器控件;用来提供一个单独的对话框,和Frame比较类似
SpinBox    输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow    PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame    labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox    用于显示应用程序的消息框。
标准属性
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

属性    描述
Dimension    控件大小;
Color    控件颜色;
Font    控件字体;
Anchor    锚点;
Relief    控件样式;
Bitmap    位图;
Cursor    光标;
几何管理
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,以下是Tkinter公开的几何管理类:包、网格、位置

典型的组件(控件,widget)
Button按钮示例
用法介绍

from tkinter import *
 
from tkinter import messageBox
top = Tk()
top.geometry("100x100")
def helloCallBack():
   msg = messageBox.showinfo( "Hello Python", "Hello World")
B = Button(top, text = "Hello", command = helloCallBack)
B.place(x = 50,y = 50)  # place 的用法 
top.mainloop()

Canvas 示例(Python实验四.pdf)
from tkinter import *
 
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章