Python中tkinter模块的学习记录(一)
听了几节Python的网课,产生了一个疑惑,如果在一个没有安装Python环境的电脑中,如何运行我们的程序呢?Python能不能做一个EXE格式的可执行文件呢?产生这个问题后,就百度了一下,好像是可以,然后安装了一个什么库,然后生成了一个EXE文件,但是运行的时候,还是像cmd一样,一个黑色的框框,难看,而且并不像一个软件的样子,要改变外观,好像得先学GUI,GUI大体的意思就是图形界面。
GUI库有很多,但是tkinter好像是最简单的,我们就拿它先下手吧!
第一步,安装tkinter
提到库,就是安装啊,但是这个不用安装,因为Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
第二步,在程序中调用。
1、Python2和Python3调用有差别:
Python2调用的语句是import Tkinter
Python3调用的语句是import tkinter
也就是说Python2首字母大写,Python3首字母小写,但是我用的是Python3,相信大家以后都是学3,用小写啦。
2、调用的语句有两种
一个是
import tkinter
另一个是
from tkinter import import *
这两句的区别就是,如果用的是第一句,后面的程序中很多地方都要加tkinter前缀,第二句就不用了,看下面的例子,感受一下。举一反三,其它的库引用时候应该也是这样子吧,就是
import XXX库 #后面就要加前缀,
from XXXX库 import * #后面就不用写前缀了。这句话的意思是导入XXX库中所有内容。
from tkinter import *class DirList(object):def __init__(self,initdir=None):self.top= Tk() ##可以不加tkinter前缀self.label = Label(self.top, text="Directory Lister V1.1") ##可以不加tkinter前缀self.label.pack()
import tkinterclass DirList(object):def __init__(self,initdir=None):self.top= tkinter.Tk() ##必须加tkinter前缀self.label = tkinter.Label(self.top, text="Directory Lister V1.1") ##必须加tkinter前缀self.label.pack()
第三步,写程序
网上说创建一个GUI程序需要以下4步
- 1、导入 Tkinter 模块
- 2、创建控件
- 3、指定这个控件的 master, 即这个控件属于哪一个
- 4、告诉 GM(geometry manager) 有一个控件产生了。
我们直接写一个能直观了解
from tkinter import *#导入tkinter库中所有的内容
window = Tk()#这个window是自己定义的,写什么都行,后面这个Tk()是固定的,特别是第一个字母T大写,这句话的意思就是创建了一个叫window的框。
window.mainloop()#window就是上一句自己定义的那个东西,后面这句mainloop是固定的,意思是让窗口运行。
运行后得到一个框框如下图:
第四步,美化深入
网上搜到的如下代码
root= tk.Tk() #主窗口
root.title('hello') #窗口标题
root.geometry('400x500') #窗口尺寸
root.wm_minsize(140, 170) # 设置窗口最小化大小
root.wm_maxsize(1440, 2800) # 设置窗口最大化大小
root.iconbitmap('1.ico') #窗口图标 必须是ico格式的图片
root.resizable(width=False, height=True) # 设置窗口宽度不可变,高度可变
root.mainloop() #主窗口循环显示
自己写的代码
from tkinter import *#导入tkinter库中所有的内容
window = Tk()#这个window是自己定义的,写什么都行,后面这个Tk()是固定的,特别是第一个字母T大写,这句话的意思就是创建了一个叫window的框。
window.title('这是标题栏的文字')#自定义的.title('标题名')修改框体的名字,也可在创建时使用className参数来命名;
window.resizable(True,True)#自定义.resizable()允许窗口根据用户需要更改其大小,参数(0,0)固定大小,参数(True,True)可以改变窗口大小,参数还可以是数字。
window.geometry('880x659')#指定主框体大小;注意这里的乘是×不是*
window.wm_minsize(50,50)#设置窗口最小化大小
window.wm_maxsize(900,900)#设置窗口最大化大小
window.iconbitmap('1.ico')#窗口图标 必须是ico格式的图片,这个ico文件必须和本py文件在同一个文件夹下
window.configure(background='orange')#背景颜色
window.mainloop()#window就是上一句自己定义的那个东西,后面这句mainloop是固定的,意思是让窗口运行。
运行的效果图:
网上还搜到如下的代码,但是没搞懂什么意思:
我们的第一个窗口就这样应运而生了,另外它还有许多其它功能,比如:
root.quit() #退出
root.destroy() #销毁
root.update() #刷新 可以接收用户改变程序进程
root.update_idletasks() #刷新 不能接收用户改变程序进程
root.wm_title('i love you') #最小化显示字样
第五步,添加部件和功能
tkinter里面有很多丰富的部件,有标签,文本框,列表框,下拉列表框,多选框,单选框等等,下面我们一起认识下它们吧。
1.标签
label = tkinter.Label(window,#label是自定义的,tkinter.Label是标签的意思,window是我们前面自己定义的text = '这是标签里的文字',#标签内文本bg='sky blue',#背景颜色font=('宋体',15),#字体和字体大小width=20, #文本宽度,实际就是那个背景色的大小height=5 #文本高度)
label.pack()#添加部件到主界面
把上面的代码,加入到我们之前写的里面,看一下运行效果:
Python Tkinter 标签控件(Label)指定的窗口中显示的文本和图像。
标签控件(Label)指定的窗口中显示的文本和图像。
你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件。
语法
语法格式如下:
w = Label ( master, option, ... )
master: 框架的父容器。
options: 可选项,即该标签的可设置的属性。这些选项可以用键-值的形式设置,并以逗号分隔。
序号 可选项 & 描述 1 anchor
文本或图像在背景内容区的位置,默认为 center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示:上北下南左西右东。
2 bg
标签背景颜色
3 bd
标签的大小,默认为 2 个像素
4 bitmap
指定标签上的位图,如果指定了图片,则该选项忽略
5 cursor
鼠标移动到标签时,光标的形状,可以设置为 arrow, circle, cross, plus 等。
6 font
设置字体。
7 fg
设置前景色。
8 height
标签的高度,默认值是 0。
9 image
设置标签图像。
10 justify
定义对齐方式,可选值有:LEFT,RIGHT,CENTER,默认为 CENTER。
11 padx
x 轴间距,以像素计,默认 1。
12 pady
y 轴间距,以像素计,默认 1。
13 relief
边框样式,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
14 text
设置文本,可以包含换行符(\n)。
15 textvariable
标签显示 Tkinter 变量,StringVar。如果变量被修改,标签文本将自动更新。
16 underline
设置下划线,默认 -1,如果设置 1,则是从第二个字符开始画下划线。
17 width
设置标签宽度,默认值是 0,自动计算,单位以像素计。
20 wraplength
设置标签文本为多少行显示,默认为 0。
上面的第4和第9个可选项没弄明白怎么用, 10-20没再弄,其它的代码测试如下
label = tkinter.Label(window,#label是自定义的,tkinter.Label是标签的意思,window是我们前面自己定义的text = '这是标签里的文字',#标签内文本bg='sky blue',#背景颜色font=('宋体',15),#字体和字体大小width=20, #文本宽度,实际就是那个背景色的大小height=5, #文本高度anchor='s',#文本或图像在背景内容区的位置,默认为 center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示:上北下南左西右东。bd=2,#标签的大小,默认为 2 个像素cursor='circle',#鼠标移动到标签时,光标的形状,可以设置为 arrow, circle, cross, plus 等。fg='red',#设置前景色。)
label.pack()#添加部件到主界面
今天就先学到这,分享一下今天所有的代码和运行效果
import tkinter
from tkinter import *#导入tkinter库中所有的内容
window = Tk()#这个window是自己定义的,写什么都行,后面这个Tk()是固定的,特别是第一个字母T大写,这句话的意思就是创建了一个叫window的框。
window.title('这是标题栏的文字')#自定义的.title('标题名')修改框体的名字,也可在创建时使用className参数来命名;
window.resizable(True,True)#自定义.resizable()允许窗口根据用户需要更改其大小,参数(0,0)固定大小,参数(True,True)可以改变窗口大小,参数还可以是数字。
window.geometry('880x659')#指定主框体大小;注意这里的乘是×不是*
window.wm_minsize(50,50)#设置窗口最小化大小
window.wm_maxsize(900,900)#设置窗口最大化大小
window.iconbitmap('1.ico')#窗口图标 必须是ico格式的图片,这个ico文件必须和本py文件在同一个文件夹下
window.configure(background='orange')#背景颜色
label = tkinter.Label(window,#label是自定义的,tkinter.Label是标签的意思,window是我们前面自己定义的text = '这是标签里的文字',#标签内文本bg='sky blue',#背景颜色font=('宋体',15),#字体和字体大小width=20, #文本宽度,实际就是那个背景色的大小height=5, #文本高度anchor='s',#文本或图像在背景内容区的位置,默认为 center,可选值为(n,s,w,e,ne,nw,sw,se,center)eswn 是东南西北英文的首字母,表示:上北下南左西右东。bd=2,#标签的大小,默认为 2 个像素cursor='circle',#鼠标移动到标签时,光标的形状,可以设置为 arrow, circle, cross, plus 等。fg='red',#设置前景色。)
label.pack()#添加部件到主界面
window.mainloop()#window就是上一句自己定义的那个东西,后面这句mainloop是固定的,意思是让窗口运行。
运行效果
明天再学,再见Python
Python中tkinter模块的学习记录(一)相关推荐
- python中label有什么用_对Python中TKinter模块中的Label组件实例详解
Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master ...
- Python中Tkinter模块的Canvas控件使用学习(2:绘制简单工程符号)
之前学习HTML5中Canvas绘图方法时,为测试函数功能,使用JavaScript在Canvas中绘制了多种工程图符号,下面两张图是工程图符号的原图.本文参照JavaScript绘图程序,使用p ...
- Python中Tkinter模块的Canvas控件绘制jpg图片到指定区域
准备在Python的Tkinter模块中用Canvas绘制如下形式的工艺卡片(图片来自参考文献5,原图来自参考文献4),但是在绘制图形时遇到两个问题,特此记录如下: jpg图片无法读取 Can ...
- python中tkinter模块_使用Python中的tkinter模块作图的方法
python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...
- python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...
本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...
- 10,python中tkinter模块里的鼠标点击事件
实践操作: from tkinter import * #鼠标点击事件的回调函数 def callback(event):print( "clicked at:", event.x ...
- python中的模块如何学习_在python中学习队列模块(如何运行它)
最近引入了队列设计,关于延迟处理能力以及实现"FIFO"等. 查看文档以尝试获取示例队列,以了解如何在我自己的设计/程序中实现它.但我遇到运行此代码的问题: import queu ...
- python中xml模块_python学习第十五天-2(XML模块)
也是一种文本转换形式. import xxxxxxxxxxxxxxxxxxx as xx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块 xml文件的新增,修改,删除,查询. 新增: i ...
- 13,python中tkinter模块里的按键事件
1,按键触发事件通常都与图像处理相结合起来: 下面是一些常见的属性: from tkinter import * win=Tk() win.title('键盘事件') txt=StringVar()# ...
- python中tkinter模块pack_Python tkinter模块和参数
转自:https://www.cnblogs.com/aland-1415/p/6849193.html 1.使用tkinter.Tk() 生成主窗口(root=tkinter.Tk()): root ...
最新文章
- java 接口参数验证_SpringBoot实现通用的接口参数校验
- invalid use of incomplete type ‘class B‘
- GSM/GPRS/WCDMA/EDGE/HSDPA?
- VMWare: eth0: error fetching interface information : device not found
- ASP.NET初识4
- 1.4 消息循环和回调函数
- Maven依赖Scope标签用法
- SDOI2014 旅行
- catia需要java插件,catia中的带分析
- 父与子的编程python_父与子的编程之旅:与小卡特一起学Python 完整版
- 如何检测VC运行库是否安装
- Objective-C 信息传递模型 [ ] 发送消息
- cf两边黑屏怎么解决win10_win10玩红警卡顿黑屏,这样解决,有些老游戏也可以借鉴哦
- 综述:如何研究植物基因组DNA羟甲基化(5hmC)?|易基因
- 梦回大明湖畔遇见情窦初开的数据库,寻梦的开始,大明湖畔的夏雨荷-你在哪呢?
- uni-app背景图片 background-image,支持 base64 格式图片、支持网络路径图片、本地路径背景图片
- 京东抢购失败?试试用Python准时自动抢购!七夕秒抢种礼物!
- 电影之《变形金刚4》
- Working Practice-破窗理论与写代码
- python升级pip版本后,pycharm还是显示老版本的解决办法