Python之tkinter的初步认识

家住魔仙堡 提交于 2020-02-29 21:04:23

tkinter的简介

GUI英文全称是Graphical User Interface,中文为图形用户接口。早期人与计能的之间的沟通是文字形式的沟通,例如,早期的DOS操作系统、Windows 的命令机分窗口、Linux 系统,等等。

tkinter是一个开放源码的图形接口开发工具,原来是用TCL(Tool Commana Language,工具命令语言)编写的GUI函数库,最初发展是从1991年开始,具有路平台的特性,可以在LinuxWindowsMac OS等操作系统上执行。这个tkinter工具提供许多图形接口,例如,标签(Label)菜单(Menu)按钮(Button)等。

目前,这个tkinter工具已经移植到Python语言,属于Python语言内建的模块,在Python 2版本中该模块名称是tkinter, 在Python 3版本中该模块被称为tkinter 模块

在安装Python的时候,就同时安装了这个模块,使用前需导入

from tkinter import *

查看tkinter版本
import tkinter
print(tkinter.TkVersion)

运行结果:

8.6

一般8.5之后的版本功能比较齐全

j

建立窗口

import tkinter

"""创建主窗口"""
root = tkinter.Tk()
"""设置窗口的标题"""
root.title("MyWindows")

"""放在程序最后一行,使程序继续执行"""
root.mainloop()

运行结果:
在这里插入图片描述
当然,窗口是可以随便拖拽的,可以放大或者缩小,当我们关闭这个窗口时,程序才会结束

如果不设置标题,默认为tk

:在GUI程序设计中,有时候也将上述所建立的窗口也成为容器

窗口属性的设置

方法 说明
title() 可以设置窗口的标题
geometry(“widthxheight+x+y”) 设置窗口宽 width 与高 height, 单位是像素,x与y是窗口的位置
maxsiza(width, height) 拖拽时可以设置窗口最大的宽与高
minsiza(width, height) 拖拽时可以设置窗口最小的宽与高
configure(bg=“color”) 设置窗口的背景颜色
resizable(True, True) 可设置是否更改窗口大小, 第一个参数是宽,第二个参数是高,如果要固定窗口,宽与高可以使用resizable(0, 0)
state(“zoomed”) 最大化窗口
iconify() 最小化窗口
iconbitmap(“xx.ico”) 更改默认窗口图标

例子,设置窗口标题为MyWindow,同时设置宽为360,高为200

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口的标题
root.title("MyWindows")
root.geometry("360x200")
root.configure(bg="yellow")

# 放在程序最后一行,使程序继续执行
root.mainloop()

运行结果:
在这里插入图片描述

窗口位置的设置

geometry( )方法除了可以设置窗口的大小,也可以设置窗口的位置,此时它的语
法格式如下。

geometry (widthxheight+x+y)

上述widthxheight已说明是窗口的宽和高,width 与height用x分隔。“+x”表示x是窗口左边距离屏幕左边的距离,如果是“-x”,则表示x是窗口右边距离屏幕右边的距离。“+y"表示y是窗口上边距离屏幕上边的距离,如果是“-y”则表示y是窗口下边距离屏幕下边的距离。

列子:建立一个360x200的窗口,此窗口左上角坐标是(400, 200)

import tkinter

# 创建主窗口
root = tkinter.Tk()
# 设置窗口的标题
root.title("MyWindows")
root.geometry("360x200+400+200")

# 放在程序最后一行,使程序继续执行
root.mainloop()

运行结果:
在这里插入图片描述
tkinter中,有方法可以获取到屏幕的宽度和高度

"""屏幕宽度"""
winfo_screenwidth()
"""屏幕高度"""
winfo_screenheight()

列子:设计窗口并放在屏幕中央

import tkinter

# 创建主窗口
root = tkinter.Tk()
screenWindth = root.winfo_screenwidth()
screenHeight = root.winfo_screenheight()
w = 300
h = 160
x = (screenWindth - w) / 2
y = (screenHeight - h) / 2
root.geometry("%dx%d+%d+%d" % (w, h, x, y))
# 放在程序最后一行,使程序继续执行
root.mainloop()

运行结果就是在屏幕中央,不方便截图

后续仍在更新

如果有错误或者有疑问,请私信我喔,感谢观看

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!