python tkinter桌面应用gui库基础介绍

liftword11小时前技术文章3


编程总离不开桌面应用,python内置了一个标准的GUI库,可以很方便的开发桌面应用程序,就是tkinter库。


要使用tkinter直接用 import tkinter 导入库就可以了,无需额外安装。

然后使用 tkinter.Tk() 方法可以创建一个窗口。这时窗口是创建了,但是还没显示出来,再调用 mainloop() 方法,就可以显示窗口了。

import tkinter

tkinter.Tk().mainloop()

就这么两行,就创建了个最简单的tkinter桌面应用。

在实际编写代码时,我们通常会给库加上个别名tk,并把窗口对象赋值给一个变量。比如:

import tkinter as tk

root = tk.Tk()

root.mainloop()

这样就可以在后面给这个窗口添加各种功能了。


比如用 title 设置窗口标题,用 geometry 设置窗口尺寸等,示例代码:


root.title("我的窗口")

root.geometry("400x300")


要掌握tkinter,无非就是掌握这三方面的内容:


1. 基本组件

2. 布局管理

3. 事件处理


首先来看下基本组件。前面创建的窗口(Tk)就是其中一种基本组件,是其他所有组件的容器。其他组件还有标签(Label), 按钮(Button), 输入框(Entry)等。

要创建一个组件,直接用对应组件的类就行。

以一个按钮button为例,直接用

b=tk.Button()

就可以创建一个按钮了。

然后可以通过 config 来设置这个按钮的文字,颜色等各种属性,示例:

b.config(text="点击我", bg="white")


但是这里只是创建了个按钮,还没告诉程序要把这个按钮放在哪里。所以现在运行是看不到这个按钮的。

需要用布局管理器放置组件,更常用的做法是在创建组件时指定父容器并布局,示例代码:


b = tk.Button(root, text="点击我") # 指定父容器为root

b.pack() # 使用pack布局显示组件


Tkinter有三种布局方式:


- pack布局:按照顺序将组件垂直或水平排列在窗口中。

- grid布局:将组件放置在一个二维的网格中,通过行和列来指定组件的位置(示例: b.grid(row=0, column=0) )。

- place布局:通过指定组件的绝对坐标来放置组件(示例: b.place(x=50, y=50) )。


但是现在我们点击这个按钮,是没任何反应的。因为我们还没告诉程序,点击这个按钮要执行什么操作。

这时就需要用到事件处理了。

Tkinter支持鼠标点击,键盘输入等各种用户事件。用组件的 bind 方法就可以给组件绑定事件了。示例代码:


b.bind("<Button-1>", lambda e: print("按钮被点击了!") ) # 绑定鼠标左键点击事件


(注: Button-1 表示鼠标左键, Button-2 中键, Button-3 右键)


这里只是讲一下tkinter的基础,对组件,布局,事件都是简单的介绍,想了解更多详细的内容,可以关注我们,后续会找时间详细讲解哦。

相关文章

aardio + Python 可视化快速开发桌面程序,一键生成独立 EXE

网络上大家分享的 aardio + Python 混合开发的文章很多,不得不说 aardio 与 Python 混合开发是真的简单 !快速入门推荐几个快速上手教程:aardio + Python 快速...

Python小白逆袭!7天吃透PyQt6,独立开发超酷桌面应用

Python GUI编程:PyQt6从入门到实战的全面指南在Python的庞大生态系统中,PyQt6作为一款强大的GUI(Graphical User Interface,图形用户界面)编程框架,为开...

用python怎么做最简单的桌面计算器

有网友问,用python怎么做一个最简单的桌面计算器。如果只强调简单,在本机运行,不考虑安全性和容错等的话,你能想到的最简单的方案是什么呢?我觉得用tkinter加eval就够简单的。现在开整。首先创...

用bun+webview做一个桌面程序

许多web程序员缺乏桌面程序的开发经验,比如使用VC++或者.NET之类的去开发桌面程序。近些年出现一个用chrome+nodejs+html制作桌面程序,就是大名鼎鼎的electron,其实elec...

用Python打造一个简洁美观的桌面计算器

最近在学习 Python GUI 编程,顺手用 Tkinter 实现了一个简易桌面计算器,功能虽然不复杂,但非常适合新手练手。如果你正在学习 Python,不妨一起来看看这个项目吧!项目背景Tkint...