python tkinter获取屏幕大小_你要的 Python 创建 GUI 用户界面程序,来咯

52c9b11762194b3d60164fc289ca663b.gif

时不时就有 b 友让我整点

“Python GUI 相关的教程”

今天小编就来给你说道说道

4548af16eed5c4a192245988366ed744.gif

用 Python 来写 GUI 的库有好几个

比如 pyqt、wxpython、tkinter、kivy

相对来说比较常用的是 tkinter它是 Python 内置的库用起来比较 “直接了当”

是这样的

TK 是一个开源的开发工具包里面提供了很多界面组件的接口比如按钮、选项框、输入框这些

而且这些组件是跨平台的在不同的操作系统中都可以运行比如你常见的 MacOS,Linux,Windows

c5ebe96e28df8d59fa1ee0778f9e6eb5.gif

既然如此

Python 就把这些接口调起来封装成函数和类然后整成 tkinter 模块

这样当我们想要写 GUI 的时候直接使用 Python 调用 tkinter 就好了

6cad9baa17d9d71a51db7e1893e9c393.png

在你的终端里面输入“python -m tkinter”

6e11bec676d3e86bf2ce98c232b6fde3.png

出现类似的窗口说明你的 tkinter 和 tk 都给安装上了

那么如何玩 tkinter 呢

接下来就是学习 Python 的正确姿势

a3981e4c44bec4e5a88b39931ac30abd.png

小编这里发一波福利包含了2020面试大全 爬虫 编程 实战项目哦 需要可以点击下方链接领取

PYTHON进阶资料 面试必备笔记 源代码 进阶视频 爬虫实战 高端项目实战免费领取​shimo.im
ace10eb612fb7c90e2633972f9180833.png


组件的使用

我先把一些常用的组件操作给你介绍一下

首先我们导入 tkinter

然后调用 Tk 方法

fa1b9cf4c4fb110f25fad33ae5faca80.png

运行就可以得到一个窗口

9ddb50b7c9ed4aaaa687984b7ff6aa82.png

样式与你的系统类型相关

其中我们调用了 mainloop 方法

主要是让它去循环等待用户的交互

定义窗口的标题

e945d231b8785e524110957010fb4d56.png

样式与你的系统类型相关

其中我们调用了 mainloop 方法

主要是让它去循环等待用户的交互

定义窗口的标题

e945d231b8785e524110957010fb4d56.png

窗口的高宽是根据组件的大小相对而定的

这样能在不同的系统中比较好的运行

当然,你也可以

使用 geometry自己指定窗口的宽高

61938c8ffa10c6879f410b37d13f8a9d.png

tkinter 把不同的组件

都封装成了 Class

比如想要往里加入文本

就可以使用 Label 对

962b2789636354dfd07757f6ae76be48.png

这里创建了一个 Label 小组件

然后用 pack 塞到窗口中去

每个组件都有一些属性可以设置

比如这里可以设置常用的宽高字体颜色

41212aa9897295fcd79248ceb43f1d26.png

加个骚骚的按钮

f3754e788273b2345512e5e0107ab825.png

ddc175d605ed8b5652d23a95aa56e820.png

按钮可以定义点击事件

比如你想当点击按钮的时候调用方法来修改 Lable 里面的内容

可以使用 command 来绑定回调函数

d7b6e52dbafc376997dec88e36be2ea4.png

运行一波

6116df89dd991e01546e80c943a534c2.png

添加文本输入框可以使用 Entry 对象

41b75c7afa3ee893294a623d62c4c94e.png

可以通过 entry 的 get 方法

获取输入的值

比如我们要让用户输入名称然后点击按钮把文字变成“xxx,你被绿了”就可以这样

4aaa9f5a7c9caa10315435cdaad5b5c2.png

这里主要是将输入的内容

作为 name 参数传给 change_label 方法

976eb8937d56453b8db91a4687f0a234.png

其它需要点击的组件使用方式和 Button 差不多

添加单选

RadioButton

80066560597c01c2e6cac7533d5c0263.png

添加下拉选择框

使用 Combbox这个需要导入 ttk

d98df969d3da4a60b4cde7e5e11d246c.png

多选框

CheckButton

6592766bad71c152ba0cfc36e96ca44a.png

弹窗messagebox

让它点击按钮的时候弹窗可以这样

37d44ddf0d42ebba553caeab61966d5a.png

添加下拉选择框

使用 Combbox这个需要导入 ttk

62fdc2de08c3bb7d89b8279b5901572e.png

d98df969d3da4a60b4cde7e5e11d246c.png

多选框

CheckButton

6592766bad71c152ba0cfc36e96ca44a.png

弹窗messagebox

让它点击按钮的时候弹窗可以这样

37d44ddf0d42ebba553caeab61966d5a.png

029224d93885c78f7ca154099affc649.png

除了 showinfo 之外show 警告和错误

660e7b0da7e7ed5a3f0a85d0d43d4d3a.png

比如显示警告

1da601d7130fee404df58edc24677ffb.png

除了 showinfo 之外show 警告和错误

660e7b0da7e7ed5a3f0a85d0d43d4d3a.png

比如显示警告

1da601d7130fee404df58edc24677ffb.png

长文本Text

b59b1a6da2a69847ab5a2bcadbf1004f.png

获取 Text 的内容

a2edfaea1a4c1b3f7f60769a8a745be2.png

其中 get 可以传入两参数一个是想要获取的行数

一个是想要获取该行中的位置

使用 tk.END 可以获取全部

组件的布局

刚刚的布局有点乱可以在组件 pack 的时候设置参数来控制组件的位置

56546c2c10739f77ba9fbd06c649a1c8.png

这里用 side 指定位置padx 来指定边距

一般来说窗口如果有多个组件

会先定义 Frame 来先布局

Frame 也是一个组件

它可以填充其它组件进来

比如我们可以把刚刚的窗口

0d3f6397f983700e6b62d6836f89cd25.png

分成 5 个 Frame

a707c41dc6fe2ee3e5fac0329d98d741.png

这里将不同的组件填充到相应的 Frame 中每个 Frame 设置的间隔为 5

820504d07c4229f0f222e76573bdf99c.png

另一种比较常用的布局方式是使用 grid()

你可以把窗口看成是一个多行多列的表格

比如我们想把刚刚窗口的 5 个 Frame

划分成

1c187950ab4104d363011e35b75f9b16.png

那么就可以这样

8dfc11b9d50d8739f22e134b7b168066.png

通过 grid 去指定 frame 的

具体在第几行第几列

其中 sticky 可以控制

组件的对其方向pad 控制间距

你还可以通过

rowconfigure 和 columnconfigure来控制单元格之间的大小

fcda48bc1810cc59514ff1f6cd7d66fc.png

一种更好的方式可以用面向对象的方式来使用 tkinter 写 GUI

像以下这样在类方法中定义组件和事件

effaba8789f47ff2fe04f8d0991f0791.png

ok,以上

你可以自己去写点界面玩玩

当然了我在这里只是介绍一些常用组件的使用

大多组件的使用方式都差不多

更多的组件和使用细节可以参考https://docs.python.org/3/library/tk.html

哦对了

之前在 VIP 简单写了下聊天室的实现用的也是 tkinter

38cc319539c428e13922a28dd8136fdc.gif

希望对你又帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值