吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2073|回复: 18
收起左侧

[学习记录] GUI(图形用户界面)之Tkinter实现

  [复制链接]
甜萝 发表于 2022-11-6 13:53
本帖最后由 paypojie 于 2022-11-8 10:43 编辑

                                                       非常简单的GUI程序
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 前言 想法与写法是不同的 先想后写(先想再写) 想法与写法是相反的  在想如何写代码的时候 应该先想如何写功能代码(变量名后面的代码部分)
# 然后 再想如何起变量名 给变量起一个见名知意的名字 在写代码的时候 应该先写已经起好的变量名 然后写等于号 最后再写功能代码(变量名后面的代码部分)
 
# 使用python创建gui(用户图形界面)程序 第一步 先导入python自带的tkinter库 因为是自带的 所以不需要额外安装 直接使用就可以了 使用自带的非常方便
# 下面被注释掉的三行代码创建了一最简单的图形用户界面程序 将这三行代码去掉注释 发现执行这三行代码后弹出一个矩形的GUI界面 这个界面非常简洁 与其说简洁 不如说简单
# 只有三个步骤是固定的步骤 也是必须要写的 分别是 1.导入tkinter模块 2.创建主窗口(也可以称做根窗口)3.使用mainloop()方法进入消息循环让主窗口一直处于显示状态
 
# import tkinter
# t = tkinter.Tk()
# t.mainloop()
 
# 让我来回忆一下 创建一个最简单的Tkinter程序的四个部分 C语言网背下来的
 
# 导入tkinter模块                                import tkinter
# 创建一个主窗口 也称为root窗口 (也称为根窗口)    root_window = tkinter.Tk()
# 创建人机交互控件 并编写相应的事件响应函数         这一部分不是固定的
# 使用mainloop()方法显示主窗口                    root_window.mainloop()
 
 
# 导入模块
import tkinter
 
# 创建一个主窗口 使用tkinter模块的TK()方法
main_window = tkinter.Tk()
 
# 更改左上角的icon图标 需要注意的是不能使用png svg格式的图标 需要使用格式为ico的图标 图片路径前请加r 要不然会报错
main_window.iconbitmap(r"C:\Users\33943\Pictures\Camera Roll\python.ico")
 
# 给主窗口起一个名字 就叫做Python 这一行代码也可以不写 不写的话 主窗口的顶部就不会显示标题Python
main_window.title('Python')
 
# 设置主窗口的大小 使用geometry()方法 传入参数'宽x高'
main_window.geometry('900x500')
 
# 设置主窗口的背景颜色 颜色值可以是英文单词 也可以是十六进制数  我填的是十六进制数
main_window['background'] = '#F0F0F0' # 背景颜色无变化 因为我用取色器取了主窗口的原始颜色
 
# 将文本内容添加到主窗口 先定义一个变量保存文本的设置 参数分别是主窗口名 文本text 字体背景色 字体前景色 字体大小和字体类型 也可以不用传递这么多参数
text = tkinter.Label(main_window,text="Hello World",bg="white",fg="black",font=('Times', 20,'bold','italic'))
 
# 将文本内容放在主窗口内
text.pack()
 
# 将一个按钮添加到主窗口里面 先使用tkinter模块的Button()方法 参数依次填主窗口 按钮的文本内容 以及cmmmand参数设置关闭窗口的功能 再对按钮使用pack()方法
button = tkinter.Button(main_window,text='关闭',command=quit)
 
# 添加按钮和添加文本到主窗口的方法类似 只不过 这个pack()方法传入了参数
button.pack(side='bottom') # 不传递参数 按钮默认会在底部 我们传递参数 side='bottom' 让按钮位于底部
 
# 对主窗口main_main_window使用mainloop()方法 如果不使用此方法 不会显示窗口 要让窗口持续显示 使用mainloop这个主方法 随即进入消息循环
main_window.mainloop()
 
# 在cmd下或者vscode下或者IDLE下 运行之后 如果把相应对应的cmd或者vscode或者IDLE 给关闭 那么GUI界面也随即关闭
# 因为依赖于python解释器 如果想要不依赖解释器 独立的在桌面运行 该怎么办呢 很简单 将xxx.py改名为xxx.pyw 就是将后缀名py改名pyw 然后双击 就可以显示GUI程序了
# 或者在cmd中输入 pythonw.exe '绝对文件路径' 例如 pythonw "C:\Users\33943\测试.pyw" 这是我自己本地的pyw文件路径 发现显示GUI界面后 关闭cmd 照样能够显示界面
 
# 参考链接 http://c.biancheng.net/tkinter/ https://www.cnblogs.com/shwee/p/9427975.html#B

运行截图
image.png
运行截图
image.png

本人学习所参考的网站链接 第一个网站是我目前主要看的 第二个网站还没看多少

http://c.biancheng.net/tkinter/  https://www.cnblogs.com/shwee/p/9427975.html#B



更新代码 增加了一些方法
[Python] 纯文本查看 复制代码
# 导入模块
import tkinter
 
# 创建一个主窗口 使用tkinter模块的TK()方法
main_window = tkinter.Tk()
 
# 更改左上角的icon图标 需要注意的是不能使用png svg格式的图标 需要使用格式为ico的图标 图片路径前请加r 要不然会报错
main_window.iconbitmap(r"C:\Users\33943\Pictures\Camera Roll\python.ico")
 
# 给主窗口起一个名字 就叫做Python 这一行代码也可以不写 不写的话 主窗口的顶部就不会显示标题Python
main_window.title('Python')
 
# 设置主窗口的大小 使用geometry()方法 传入参数'宽x高'
main_window.geometry('900x500')
 
# 设置主窗口的背景颜色 颜色值可以是字符串形式的英文单词 也可以是字符串形式的十六进制数  我填的是十六进制数
# 两种方法修改主窗口背景色 第一种 主窗口['background'] = '颜色值' 主窗口.config(background='颜色值')
main_window['background'] = '#F0F0F0' # 背景颜色无变化 因为我用取色器取了主窗口的原始颜色
main_window.config(background='white') # 修改背景颜色 背景颜色发生改变 变成了白色
 
# 主窗口的resizable()方法 设置是否允许用户拉伸主窗口大小 当传入两个0或者F两个alse的时候 就不允许调整主窗口大小
# main_window.resizable(False,False) # 默认是允许用户调整主窗口大小的 注释掉这行代码 不让其执行
 
# 将文本内容添加到主窗口 先定义一个变量保存文本的设置 参数分别是主窗口名 文本text 字体背景色 字体前景色 字体大小和字体类型 也可以不用传递这么多参数
text = tkinter.Label(main_window,text="Hello World",bg="white",fg="black",font=('Times', 20,'bold','italic'))
 
# 将文本内容放在主窗口内
text.pack()
 
# 将一个按钮添加到主窗口里面 先使用tkinter模块的Button()方法 参数依次填主窗口 按钮的文本内容 以及cmmmand参数设置关闭窗口的功能 再对按钮使用pack()方法
button = tkinter.Button(main_window,text='关闭',command=quit)
 
# 添加按钮和添加文本到主窗口的方法类似 只不过 这个pack()方法传入了参数
button.pack(side='bottom') # 不传递参数 按钮默认会在底部 我们传递参数 side='bottom' 让按钮位于底部
 
# 获取电脑屏幕的尺寸 (电脑的大小) 并将此输出 对主窗口分别使用winfo_screenwidth()和winfo_screenheight()方法
print('电脑屏幕的大小为%sx%s' % (main_window.winfo_screenwidth(),main_window.winfo_screenheight()))
 
# 在获取窗口的大小之前 必须先刷新一下主窗口 假如不写这行代码 那么就会获取到一个错误的结果
main_window.update()
 
print('窗口的大小为%sx%s' % (main_window.winfo_width(),main_window.winfo_height()))
 
# 让窗口处于顶层 使用attributes()函数 传入一个字符串形式的参数和True 这行代码视乎没起到什么效果
main_window.attributes('-topmost',True)
 
# 设置窗口的透明度 同样用attributes()函数 传入一个字符串形式的参数和一个范围在0到1之间的数值 值越小越趋向于透明 值越大越趋向于不透明 0完全透明 1完全不透明
main_window.attributes('-alpha',0.9)
 
# 设置窗口的最大调整范围 与resize()方法会发生冲突
main_window.maxsize(1000,600)
 
# 设置窗口的最小调整范围
main_window.minsize(800,400)
 
# 对主窗口main_main_window使用mainloop()方法 如果不使用此方法 不会显示窗口 要让窗口持续显示 使用mainloop这个主方法 随即进入消息循环
main_window.mainloop()


免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yg226 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

肖飞 发表于 2022-11-6 13:58
学到了 谢谢
 楼主| 甜萝 发表于 2022-11-6 14:00
likezqc 发表于 2022-11-6 14:23
头像被屏蔽
洛枫 发表于 2022-11-6 15:40
提示: 作者被禁止或删除 内容自动屏蔽
努力的笨蛋 发表于 2022-11-6 16:17
我都快被这布局逼疯了,项做的好看点太难了
258239234 发表于 2022-11-6 16:24
编写的很好,多谢分享!
 楼主| 甜萝 发表于 2022-11-6 17:15

不用谢 (*^▽^*)
 楼主| 甜萝 发表于 2022-11-6 17:16
洛枫 发表于 2022-11-6 15:40
有可视化拖拽工具可以直接用的,不用手撕UI:
http://xfxuezhang.cn/web/tkinter-helper/

都行 实现功能就ok了
 楼主| 甜萝 发表于 2022-11-6 17:17
努力的笨蛋 发表于 2022-11-6 16:17
我都快被这布局逼疯了,项做的好看点太难了

设计布局的话 确实不容易
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-16 04:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表