听了几节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模块的学习记录(一)相关推荐

  1. python中label有什么用_对Python中TKinter模块中的Label组件实例详解

    Python2.7.4 OS-W7x86 1. 简介 Label用于在指定的窗口中显示文本和图像.最终呈现出的Label是由背景和前景叠加构成的内容. Label组件定义函数:Label(master ...

  2. Python中Tkinter模块的Canvas控件使用学习(2:绘制简单工程符号)

      之前学习HTML5中Canvas绘图方法时,为测试函数功能,使用JavaScript在Canvas中绘制了多种工程图符号,下面两张图是工程图符号的原图.本文参照JavaScript绘图程序,使用p ...

  3. Python中Tkinter模块的Canvas控件绘制jpg图片到指定区域

      准备在Python的Tkinter模块中用Canvas绘制如下形式的工艺卡片(图片来自参考文献5,原图来自参考文献4),但是在绘制图形时遇到两个问题,特此记录如下: jpg图片无法读取   Can ...

  4. python中tkinter模块_使用Python中的tkinter模块作图的方法

    python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...

  5. python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...

    本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...

  6. 10,python中tkinter模块里的鼠标点击事件

    实践操作: from tkinter import * #鼠标点击事件的回调函数 def callback(event):print( "clicked at:", event.x ...

  7. python中的模块如何学习_在python中学习队列模块(如何运行它)

    最近引入了队列设计,关于延迟处理能力以及实现"FIFO"等. 查看文档以尝试获取示例队列,以了解如何在我自己的设计/程序中实现它.但我遇到运行此代码的问题: import queu ...

  8. python中xml模块_python学习第十五天-2(XML模块)

    也是一种文本转换形式. import xxxxxxxxxxxxxxxxxxx  as xx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块 xml文件的新增,修改,删除,查询. 新增:​ i ...

  9. 13,python中tkinter模块里的按键事件

    1,按键触发事件通常都与图像处理相结合起来: 下面是一些常见的属性: from tkinter import * win=Tk() win.title('键盘事件') txt=StringVar()# ...

  10. python中tkinter模块pack_Python tkinter模块和参数

    转自:https://www.cnblogs.com/aland-1415/p/6849193.html 1.使用tkinter.Tk() 生成主窗口(root=tkinter.Tk()): root ...

最新文章

  1. java 接口参数验证_SpringBoot实现通用的接口参数校验
  2. invalid use of incomplete type ‘class B‘
  3. GSM/GPRS/WCDMA/EDGE/HSDPA?
  4. VMWare: eth0: error fetching interface information : device not found
  5. ASP.NET初识4
  6. 1.4 消息循环和回调函数
  7. Maven依赖Scope标签用法
  8. SDOI2014 旅行
  9. catia需要java插件,catia中的带分析
  10. 父与子的编程python_父与子的编程之旅:与小卡特一起学Python 完整版
  11. 如何检测VC运行库是否安装
  12. Objective-C 信息传递模型 [ ] 发送消息
  13. cf两边黑屏怎么解决win10_win10玩红警卡顿黑屏,这样解决,有些老游戏也可以借鉴哦
  14. 综述:如何研究植物基因组DNA羟甲基化(5hmC)?|易基因
  15. 梦回大明湖畔遇见情窦初开的数据库,寻梦的开始,大明湖畔的夏雨荷-你在哪呢?
  16. uni-app背景图片 background-image,支持 base64 格式图片、支持网络路径图片、本地路径背景图片
  17. 京东抢购失败?试试用Python准时自动抢购!七夕秒抢种礼物!
  18. 电影之《变形金刚4》
  19. Working Practice-破窗理论与写代码
  20. python升级pip版本后,pycharm还是显示老版本的解决办法

热门文章

  1. 前端开发工程师原生html进阶指南
  2. css动画transition和animation实现遮罩动画
  3. 瑞利分布(Rayleigh Distribution)回顾
  4. 商业分析师的要求与必备技能
  5. 关于PMI-PBA商业分析师,你想知道的都在这
  6. 01百思不得其姐基本配置
  7. router禁用443端口
  8. 2010不断创新的供应链应用模式
  9. Vue - $route matched 属性实现面包屑导航
  10. Java8------Sort()