前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >太实用了!自己动手写软件——GUI编程

太实用了!自己动手写软件——GUI编程

作者头像
菜鸟小白的学习分享
发布于 2020-07-14 12:26:17
发布于 2020-07-14 12:26:17
4.3K00
代码可运行
举报
运行总次数:0
代码可运行

这几天我有一个想法就是将我之前做测试写的一些协议脚本(如:ssh、FTP、SMTP、MySQL、Oracle等)综合在一起做一个密码破解器,这么多的协议放在一起,每个协议都有自己特殊的参数,如果还是和之前我们的方式一起通过命令行输入的方式未免就太麻烦了。但是如果提供一个软件界面,将不同的协议作为选择项,不同协议需要不同的参数,这样一个相对方便的密码破解软件是不是就好了呢。

出于这样的考虑,今天我们看一下图形用户界面(Graphical User Interface,GUI)编程,看了一下网上python的GUI编码库有很多,但是tkinter是内置库,所以我们还是选择这个内置库作为我们的工具对象了。我们今天就来学习一下tkinter的使用。后面几天我们也将持续更新我们密码破解工具的完成过程,有兴趣的小伙伴可以和菜鸟小白一起每天完成一部分内容,最终自己完成一个软件的编写。

GUI编码流程

将你的GUI程序启动和运行起来一般需要以下五个步骤:

  • 导入模块,我们使用的就是import tkinter(或者from tkinter import *)
  • 创建一个顶层窗口,用于放置所有的组件
  • 在顶层窗口的上面构建不同的GUI组件
  • 通过底层的应用代码将这些GUI组件连接起来
  • 进入主事件循环

安装和使用

好了,回归正题,看看我们今天需要学习的tkinter,因为是内置库,所以我们不需要安装直接调用即可。

python3对tkinter库进行了改写,两者的导入方式存在差异

python2导入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Tkinter

python3导入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter

窗口

我们使用GUI编程,都需要新建一个顶层框架,就好像是画家在画画,我们先要拿出一张纸来承载画家的绘画内容。我们新建的这个顶层框架也是一样,用来盛放所有的GUI组件(如:按钮(Button)、文本输入框(Entry)、菜单(Menu))。我们新建的方式一般是这样的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter
window = tkinter.Tk()#创建一个主窗口

控件

当前tkinter一共有这么几种控件,我们先看看每一个控件的类型,然后我们再抽一些常用的控件来写一些示例

控件

描述

Button

按钮控件;在程序中显示按钮,包含的事件如:鼠标悬浮、按下、释放以及键盘活动

Canvas

画布控件;显示图形元素,如线条、椭圆、矩形等

Checkbutton

多选框控件;用于在程序中提供多项选择框

Entry

输入控件;用于显示简单的文本内容

Frame

框架控件;在屏幕上显示一个矩形区域,多用来作为容器

Label

标签控件;可以显示文本和位图

Listbox

列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Menubutton

菜单按钮控件,用于显示菜单项。

Menu

菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message

消息控件;用来显示多行文本,与label比较类似

Radiobutton

单选按钮控件;显示一个单选的按钮状态

Scale

范围控件;显示一个数值刻度,为输出限定范围的数字区间

Scrollbar

滚动条控件,当内容超过可视化区域时使用,如列表框。.

Text

文本控件;用于显示多行文本

Toplevel

容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox

输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow

PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame

labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

tkMessageBox

用于显示你应用程序的消息框。

Button控件

我们新建一个退出按钮,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter

window = tkinter.Tk()#创建一个主窗口

window.title("密码破解工具")#窗口标题
window.geometry("500x600")

quit = tkinter.Button(window,text="QUIT",command=window.quit())
quit.pack()

window.mainloop()
  • 首先我们导入tkinter模块
  • 然后新建一个顶层窗口
  • 五六行是定义顶层窗口的标题和大小
  • 第八行是我们编写的Button控件,将其放置在window顶层框架上,显示的Button文字为“QUIT”,绑定了一个回调函数就是window.quit
  • 第九行就是将这个button控件采用pack方法放置,pack会将控件自动放置在合适的位置
  • 最后一行运行一个主函数

实现出来效果是这样的

Label控件

Label控件就相当于一个信息提供框。具体使用方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter

window = tkinter.Tk()#创建一个主窗口

window.title("密码破解工具")#窗口标题
window.geometry("500x600")

label = tkinter.Label(window,text="菜鸟小白的学习分享")
label.pack()

window.mainloop()

其它部分都是和Button内容是一致的,就是Label控件调用的Label函数,它没有回调函数,所以说它只是相当于一个信息提供框。

实现效果是这样的

Menu控件

Menu控件就是我们说的菜单栏,后面我们编写软件也是需要用到的。具体使用方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import tkinter

window = tkinter.Tk()#创建一个主窗口

window.title("密码破解工具")#窗口标题
window.geometry("500x600")

menu = tkinter.Menu(window)
menu.add_command(label="开始破解",command=print("开始破解"))
menu.add_command(label="退出",command=window.quit)
window.config(menu=menu)

window.mainloop()
  • 1-6行:和之前的一样,不做介绍
  • 8行:创建一个Menu控件,并将控件放置在window上
  • 9-10行:添加菜单内容和回调函数
  • 11行:将menu控件配置生效在window顶层框架上
  • 13行:进入主事件循环

最终实现效果是这样的

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟小白的学习分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图形化界面的开发(GUI)_Tkinter库的使用-1(综述)
看过前面的图片脚本篇是不是对图形化界面略微感兴趣了?这篇文章就来讲一下python中tkinter库的使用。
laity
2025/02/27
4180
软件测试|超好用超简单的Python GUI库——tkinter(二)
Tkinter中,主窗口控件(window)是一切控件的基础,它好比是一台高速运转的机器,而其他控件则相当于这台机器上的部件,比如齿轮、链条、螺丝等等。由此我们知道,主窗口是一切控件的基础,所有的控件的都需要通过主窗口来显示。
霍格沃兹测试开发Muller老师
2023/04/10
2.8K0
Python 之 tkinter 学习笔记
最近有个小需求需要实现,最后要给出一个 GUI 界面,想了想还是不用 c++ 写 MFC 了,因为还涉及到网络编程,感觉还是简单事情简单做,然后转手写 python,刚开始想尝试 pyqt,但感觉好像还是有点麻烦,本来就只是做个插件,最后就大概看了一下内置的 tkinter,一边写一边学也马上就上手了,总的来说感觉还是简单的。
EmoryHuang
2022/10/31
7.2K0
Python 之 tkinter 学习笔记
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
本篇文章主要python第三方库Tkinter库的使用,包括输入框(Entry)控件,Spinbox控件,Listbox(列表框)控件和Combobox(复合框)控件它们的常用属性和方法以及具体的示例和相应的效果图。
laity
2025/02/27
3480
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
Tkinter 入门之旅
Tkinter 作为 Python 的标准库,是非常流行的 Python GUI 工具,同时也是非常容易学习的,今天我们就来开启 Tkinter 的入门之旅
周萝卜
2021/11/08
6.8K0
图形化界面的开发(GUI)_Tkinter库的使用-2(Label+Message+Text)
本篇文章主要讲Tkinter库的Label标签控件,Message控件和文本控件Text,以及相对关的属性和方法以及示例。
laity
2025/02/27
2750
图形化界面的开发(GUI)_Tkinter库的使用-2(Label+Message+Text)
图形化界面的开发(GUI)_Tkinter库的使用-3(Button+Radiobutton+Checkbutton)
本篇文章主要讲Tkinter库的按钮Button控件,单选框Radiobutton控件和复选框Checkbutton控件,以及相对关的属性和方法以及示例。
laity
2025/02/27
4770
图形化界面的开发(GUI)_Tkinter库的使用-3(Button+Radiobutton+Checkbutton)
Python|Tkinter实现一个窗口的菜单栏
有时要在窗口上添加一个菜单栏,一般不会想到用python来实现它,今天小编就给大家带来用python实现一个窗口的菜单栏,而且,在菜单栏类还可以添加一些功能,一起来看看吧。
算法与编程之美
2020/06/03
2K0
Python的GUI编程和tkinter,Wxpython
根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 title() 方法可设置其标题文字,用geometry()方法可以设置窗体的大小(以像素为单位)。将其置于主循环中,除非用户关闭,否则程序始终处于运行状态。执行该程序,一个窗体就呈现出来了。在这个主循环的根窗体中,可持续呈现中的其他可视化控件实例,监测事件的发生并执行相应的处理程序
十二惊惶
2024/02/28
7720
Python|GUI编程的基础讲解
学python的各位可能对于python只能在终端里输入输出感觉有些无聊吧!其实在python GUI编程(图形用户界面编程)里可以实现将程序窗口化,可以引入tkinter模块,自己电脑上没有的话用pip安装即可。本篇文章小编就分享一些python GUI编程的基础,后续还会更新一些更深层次的技巧。
算法与编程之美
2020/04/15
2K0
GUI编程基础知识点总结
学 python的各位可能对于python只能在终端里输入输出感觉有些无聊吧!其实在python GUI 编程(图形用户界面编程)里可以实现将程序窗口化,可以引入 tkinter 模块,自己电脑上没有的话用 pip安装即可。本篇文章小编就分享一些python GUI 编程的基础,后续还会更新一些更深层次的技巧。
小小科
2020/04/28
2.2K0
Python初学——窗口视窗Tkinter
此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口 1.1 什么是
闪电gogogo
2018/01/08
6.7K0
Python初学——窗口视窗Tkinter
太实用了!自己动手写软件——密码验证器的界面实现
我们今天的目标很简单,就是先把软件的界面设计和写出来,并不关心每一个按钮和输入框之后的功能实现。我设计一个这样的界面(极其简单,只是实现功能)
菜鸟小白的学习分享
2020/07/20
9280
Python-GUI|Tkinter模块
01 Tkinter Tkinter模块是Python的标准Tk GUI工具包的接口,它并不是必须掌握的,但是掌握一个Python的标准图形库还是非常有意思的一件事。 它可以跨平台运行在Windows,Linux和Mac等系统上。 这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么! 02 第一个Tk-GUI from tkinter import * root=Tk() root.title('first tk gui') root.geometry('
double
2018/04/02
4.8K0
Python-GUI|Tkinter模块
软件测试|超好用超简单的Python GUI库——tkinter(四)
Button 控件是 Tkinter 中常用的窗口部件之一,同时也是实现程序与用户交互的主要控件。通过用户点击按钮的行为来执行回调函数,是 Button 控件的主要功用。首先自定义一个函数或者方法,然后将函数与按钮关联起来,最后,当用户按下这个按钮时,Tkinter 就会自动调用相关函数。
霍格沃兹测试开发Muller老师
2023/04/10
1.4K0
基于tkinter的GUI编程
tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl 解释器实现的,它是Python标准库的一部分,所以使用它进行GUI编程不需要另外安装第三方库的。
py3study
2020/01/16
5.7K0
基于tkinter的GUI编程
图形化界面的开发(GUI)_Tkinter库的使用-5(Menu+Canvas+Scale+Scrollbar)
本篇文章主要介绍python第三方库Tkinter库的使用,包括Menu(菜单)控件,Canvas(画布)控件和Scale(滑动)控件以及Scrollbar(滚动条)控件,它们的常用属性和方法以及具体的示例和相应的效果图。
laity
2025/02/27
3790
图形化界面的开发(GUI)_Tkinter库的使用-5(Menu+Canvas+Scale+Scrollbar)
python--GUI编程--Tkinter
Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中
py3study
2018/08/02
4K0
Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1
在这个demo里面可以看到我不仅设置了iconbitmap而且还设置了对应的background颜色,并且添加了一个text文本,通常会使用tk.Lable设置,在参数中能看到,bg是北京颜色,fg是文字颜色,font的参数里面是字体设置。依次是字体、字号、样式,bold italic加粗的斜体。
红目香薰
2022/11/30
5.5K0
Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1
零基础Python教程047期 GUI窗体界面编程,迈出软件开发的第一步
函数:在编程中,int函数、list函数、str函数、float函数等,这些都是python的sdk中自带函数。
刘金玉编程
2020/09/10
1.1K0
推荐阅读
相关推荐
图形化界面的开发(GUI)_Tkinter库的使用-1(综述)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验