你要的 Python 创建 GUI 用户界面程序,来咯 您所在的位置:网站首页 python创建界面 你要的 Python 创建 GUI 用户界面程序,来咯

你要的 Python 创建 GUI 用户界面程序,来咯

2022-06-06 20:42| 来源: 网络整理| 查看: 265

时不时就有 b 友让我整点“Python GUI 相关的教程”今天小帅b就来给你说道说道30f9fdefd18b5f2b854ca26b2e6c00e2.webp用 Python 来写 GUI 的库有好几个比如 pyqt、wxpython、tkinter、kivy相对来说比较常用的是 tkinter它是 Python 内置的库用起来比较 “直接了当”是这样的TK 是一个开源的开发工具包里面提供了很多界面组件的接口比如按钮、选项框、输入框这些而且这些组件是跨平台的在不同的操作系统中都可以运行比如你常见的 MacOS,Linux,Windowse39929eb83b104b9cd36dc17e031df31.webp既然如此Python 就把这些接口调起来封装成函数和类然后整成 tkinter 模块这样当我们想要写 GUI 的时候直接使用 Python 调用 tkinter 就好了1c6285545f4695806b0f76046bfe3e96.webp在你的终端里面输入“python -m tkinter”

bce28fe0758e4108f4ff0d602a0a43fc.webp

出现类似的窗口说明你的 tkinter 和 tk 都给安装上了那么如何玩 tkinter 呢接下来就是学习 Python 的正确姿势

2b1d93dc787d7b26b60662d3c9676444.webp

组件的使用我先把一些常用的组件操作给你介绍一下首先我们导入 tkinter然后调用 Tk 方法

8986e83f11885714b325cdbe697255c6.webp

运行就可以得到一个窗口

812cde9374622f6875bda0f5f35aa8f1.webp

样式与你的系统类型相关其中我们调用了 mainloop 方法主要是让它去循环等待用户的交互定义窗口的标题

a4e8108c86c9b2b60b9a3f67cfe93392.webp

窗口的高宽是根据组件的大小相对而定的这样能在不同的系统中比较好的运行当然,你也可以使用 geometry自己指定窗口的宽高

f51eed4aa2dd2578a7919656f2918565.webp

tkinter 把不同的组件都封装成了 Class比如想要往里加入文本就可以使用 Label 对象

9f8b76dc90ff73bfdec47478eacd89e6.webp

这里创建了一个 Label 小组件然后用 pack 塞到窗口中去每个组件都有一些属性可以设置比如这里可以设置常用的宽高字体颜色

3be8e3ba5d85427a59239ffd841044fb.webp

加个骚骚的按钮

a1391e9eaf6bcb14838dd2b4bb34b491.webp

124b9d82e99c33da3d7e88f88bb2a67f.webp按钮可以定义点击事件比如你想当点击按钮的时候调用方法来修改 Lable 里面的内容可以使用 command 来绑定回调函数

ea292c52cbfdc8b7bac3e3d4771e2680.webp

运行一波

4ac7934e16720e89f3963b0473188043.webp

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

acc961736c2124aecf5c7bf048d75dd4.webp

可以通过 entry 的 get 方法获取输入的值比如我们要让用户输入名称然后点击按钮把文字变成“xxx,你被绿了”就可以这样

fcc69185b31782a281e91afafeba7461.webp

这里主要是将输入的内容作为 name 参数传给 change_label 方法

498f46ea2b5dbd5f946bd7056065aa75.webp

其它需要点击的组件使用方式和 Button 差不多添加单选RadioButton

b8b74fc296021ac37cbf8827c20d11af.webp

添加下拉选择框使用 Combbox这个需要导入 ttk

0bc19c7ba5def033a58c881f9787501f.webp

2350cd594b31c9be9f9ff125e52d30c4.webp

多选框CheckButton

7d55613e6a8ea5eaafdfb47e82c598e4.webp

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

2a3ce065f5a12be285cbdc6223940720.webp

81cbad00bf1bf80362e24b6bd9a1d466.webp

除了 showinfo 之外show 警告和错误

8d31035212a215e61c36619e628d15bd.webp

比如显示警告

ec8b8f57ca82ef0b838708b7a5d56247.webp

还可以用疑问的方式展示

8ae307584d29af4007b3aac7cfcd6ac8.webp

比如 askquestion

99edd472e6f72d181cfa4e5ecb3a11fe.webp

长文本Text

8dd0f7db43eb377a01fc47a68d7ad183.webp

获取 Text 的内容

91aa287c45404f18fe62c945b37a5c17.webp

其中 get 可以传入两参数一个是想要获取的行数一个是想要获取该行中的位置使用 tk.END 可以获取全部组件的布局

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

3b5d03ea208c1de57f0e148755f9c5ac.webp

这里用 side 指定位置padx 来指定边距一般来说窗口如果有多个组件会先定义 Frame 来先布局Frame 也是一个组件它可以填充其它组件进来比如我们可以把刚刚的窗口

98adae7d27196096cb6c0cce1bee4c19.webp

分成 5 个 Frame

f864244f7081099138e818dc1f3d9f73.webp

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

d63a22ca65c953688800e723fcac8530.webp

另一种比较常用的布局方式是使用 grid()你可以把窗口看成是一个多行多列的表格比如我们想把刚刚窗口的 5 个 Frame划分成f4f2f1f3f5那么就可以这样

1190e7686fdeefeb233f218ea990d3d7.webp

通过 grid 去指定 frame 的具体在第几行第几列其中 sticky 可以控制组件的对其方向pad 控制间距你还可以通过rowconfigure 和 columnconfigure来控制单元格之间的大小

238e091c42ee352cab3d7706abfad332.webp

一种更好的方式可以用面向对象的方式来使用 tkinter 写 GUI像以下这样在类方法中定义组件和事件

0991bf50f119189d6612b7f674d5d601.webp

ok,以上你可以自己去写点界面玩玩当然了我在这里只是介绍一些常用组件的使用大多组件的使用方式都差不多更多的组件和使用细节可以参考https://docs.python.org/3/library/tk.html哦对了之前在 VIP 简单写了下聊天室的实现用的也是 tkinter

dd57127b983af5616ed6c53d34c77705.webp

感兴趣可以在阅读原文中了解那么,我们下回见peace

5099ad0a499bacfde793aa3c5c875d6c.webp

太爱我的话就加我微信

备注【读者】即可通过

ca85a091a0ec74e0d9ef7b5121c7d1ea.webp

点亮在看你我同在


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有