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 tkinter

class 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 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值