python界面开发 - Menu (popupmenu) 右键菜单
文章目录
- 1. python图形界面开发
- 1.1. Python图形界面开发——Tkinter
- 1.2. Python图形界面开发——PyQt
- 1.3. Python图形界面开发——wxPython
- 1.4. Python图形界面开发—— PyGTK:基于GTK
- 1.5. Python图形界面开发—— Kivy
- 1.6. Python图形界面开发——可视化工具
- 1.7. Python图形界面开发——GUI设计原则
- 2. Tkinter 开发
- 3. Menu (popupmenu) 右键菜单
- 3.1. 示例1
- 3.2. 示例2
1. python图形界面开发
Python作为一种高级编程语言,具有简单易学、开发效率高等优点,近年来备受关注。Python的图形界面开发也是其应用领域之一。本文将从多个角度分析Python图形界面开发。
-
一、Python图形界面开发——Tkinter
-
二、Python图形界面开发——PyQt
-
三、Python图形界面开发——wxPython
-
四、Python图形界面开发—— PyGTK
-
五、Python图形界面开发—— Kivy
-
六、Python图形界面开发——可视化工具
1.1. Python图形界面开发——Tkinter
Python自带的GUI开发工具包,可以创建简单的GUI应用程序。
Tkinter是Python自带的GUI开发库,它是一个跨平台的开发库,可在多个操作系统上使用。Tkinter提供了丰富的GUI控件,如按钮、标签、文本框等,可以方便地创建各种GUI应用。此外,Tkinter的文档和教程也非常全面,易于入门。
Tkinter是Python自带的GUI工具包,它是一个跨平台的工具包,可以在Windows、Linux和MacOS等操作系统上运行。Tkinter是基于Tk GUI工具包的Python接口,TkGUI工具包是一个用于创建GUI应用程序的工具包,最初是为Tcl语言设计的,后来被移植到了其他语言中,包括Python。
1.2. Python图形界面开发——PyQt
一个基于Qt库的Python GUI开发工具包,提供了丰富的GUI组件和功能。
PyQt是一个用于开发Python GUI应用的工具包,它是基于Qt库开发的。PyQt提供了与Qt相同的GUI控件,并且还提供了一些独特的控件,如日期选择器、颜色选择器等。PyQt的文档也很全面,但是由于它不是Python自带的库,所以需要先安装。
1.3. Python图形界面开发——wxPython
基于wxWidgets库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。
wxPython也是一个用于开发Python GUI应用的工具包,它是基于wxWidgets库开发的。wxPython提供了与wxWidgets相同的GUI控件,可在多个操作系统上使用。wxPython的文档和教程也很全面,但与PyQt相比,它的学习曲线稍微陡峭一些。
1.4. Python图形界面开发—— PyGTK:基于GTK
PyGTK:基于GTK+库的Python GUI开发工具包,可以创建跨平台的GUI应用程序。
1.5. Python图形界面开发—— Kivy
Kivy:一个跨平台的Python GUI开发框架,专注于创建移动应用程序和多点触控应用程序。
1.6. Python图形界面开发——可视化工具
除了以上三种GUI开发库外,还有一些Python可视化工具,如Matplotlib、Seaborn、Plotly等,它们可以用于数据可视化、绘制图表等。这些工具不仅能够提供强大的图形绘制功能,而且还可以与GUI库相结合,实现更加丰富多彩的GUI应用。
1.7. Python图形界面开发——GUI设计原则
在进行Python图形界面开发时,需要遵循一些GUI设计原则,如界面简洁、易用性高、反应速度快等。此外,还需要注意界面的美观度,选择合适的颜色、字体、图片等,以提高用户体验。
2. Tkinter 开发
使用Tkinter,可以快速地创建GUI应用程序,Tkinter提供了一系列的GUI组件,如按钮、标签、文本框、滚动条、列表框等,可以通过这些组件来构建GUI界面。Tkinter还提供了一些布局管理器,可以更方便地管理和布局GUI组件。
常用控件包括:
-
Button 按钮
-
Label 提示信息,用于显示文本和图像。
-
Message:类似于Label,但可以自动换行
-
Entry 文本框,用于输入单行文本。
-
Text文字区域,用于输入多行文本。
-
OptionMenu 菜单
-
ComboBox 下拉框
-
Menu 右键菜单
-
Checkbutton 用于创建复选框,用于选择一个或多个选项。
-
Radiobutton:用于创建单选按钮, 用于选择一项。
-
Scale:用于创建滑动条, 用于选择一个范围内的值。
-
Listbox:用于创建列表框
-
布局管理
3. Menu (popupmenu) 右键菜单
3.1. 示例1
from tkinter import *
root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New")
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
root.config(menu=menubar)
root.mainloop()
3.2. 示例2
from tkinter import *
from tkinter import messagebox# 剪切
def cut_job():copyJob()text.delete(SEL_FIRST, SEL_LAST)# 复制
def copy_job():try:text.clipboard_clear()copyText = text.get(SEL_FIRST, SEL_LAST)text.clipboard_append(copyText)except TclError:print("没有选取")# 粘贴
def paste_job():try:copyText = text.selection_get(selection="CLIPBOARD")text.insert(INSERT, copyText)except TclError:print("剪贴板没有数据")# 显示弹出菜单
def show_popup_menu(event):popupmenu.post(event.x_root, event.y_root)root = Tk()
root.title("Text示例")
root.geometry("300x300")popupmenu = Menu(root, tearoff=False)
popupmenu.add_command(label="Cut", command=cut_job)
popupmenu.add_command(label="Copy", command=copy_job)
popupmenu.add_command(label="Paste", command=paste_job)# 单机鼠标右键绑定显示弹出菜单
root.bind("<Button-3>", show_popup_menu)text = Text(root)
text.pack(fill=BOTH, expand=True)
for i in range(10):text.insert(END, str(i) + f"这是数字{i}\n")root.mainloop()

相关文章:
python界面开发 - Menu (popupmenu) 右键菜单
文章目录 1. python图形界面开发1.1. Python图形界面开发——Tkinter1.2. Python图形界面开发——PyQt1.3. Python图形界面开发——wxPython1.4. Python图形界面开发—— PyGTK:基于GTK1.5. Python图形界面开发—— Kivy1.6. Python图形界面开发——可视化工具1.7. …...
微服务架构 | 多级缓存
INDEX 通用设计概述2 优势3 最佳实践 通用设计概述 通用设计思路如下图 内容分发网络(CDN) 可以理解为一些服务器的副本,这些副本服务器可以广泛的部署在服务器提供服务的区域内,并存有服务器中的一些数据。 用户访问原始服务器…...
怎么将pom在文件放到src下方
今天在IDEA从git拉取项目的时候,发现pom.xml文件在文件夹src的上方,平时看惯了项目的pom.xml文件在文件夹src的下方,应该怎么去设置呢? 点击设置——>点击Folder Always on Top 即可 参考:http://t.csdnimg.cn/s34…...
浅谈网络爬虫与Web安全
网络爬虫(Web Crawler),又称网络蜘蛛(Web Spider)或网络机器人(Web Robot),是一种按照一定的规则自动抓取万维网资源的程序或者脚本,已被广泛应用于互联网领域。搜索引擎使用网络爬虫抓取Web网页、文档甚至图片、音频、视频等资源,…...
C++vector的使用方法
文章目录 一、vector的介绍1. 文档链接2. 简要介绍 二、vector的使用1.vector的定义(1)构造函数(2)拷贝构造函数(2)赋值重载 2. vector 增删查改(1)operator [](2&#x…...
视频生成模型Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet
视频生成模型Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet 真没想到,举例视频生成上一轮的集中爆发才过去三个月,没想OpenAI一出手,该领域又直接变天了自打2.16日OpenAI发布sora以来,不但把同时…...
4.1k star,官方出品的redis桌面管理工具——redislnsight
导航 令人抓狂的大key加载RedisInsight 简介RedisInsight的亮点GitHub 地址安装和使用RedisInsight 下载安装 使用RedisInsight redis数据库可视化直观的CLI(Command-Line Interface)日志分析和命令分析 结语参考 令人抓狂的大key加载 工欲善其事必先利…...
论文目录3:大模型时代(2023+)
1 instruction tuning & in context learning 论文名称来源主要内容Finetuned Language Models Are Zero-Shot Learners2021 机器学习笔记:李宏毅ChatGPT Finetune VS Prompt_UQI-LIUWJ的博客-CSDN博客 早期做instruction tuning的work MetaICL: Learning to …...
FPGA IBUFG
IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。 所以,IBUFG输入的不能直接接另外信号。 GTH transceiver primitives are called GTHE3_COMMON and GTHE3_CHANNEL in UltraScale FPGAs, an…...
探索数据结构:单链表的实战指南
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty‘s blog 前言 在上一章节中我们讲解了数据结构中的顺序表,知道了顺序…...
短视频矩阵系统----矩阵系统源码搭建(技术门槛?)
短视频矩阵是什么意思?短视频矩阵的含义可以理解为全方位的短视频账号,通过不同的账号实现全方位的品牌展示。实际上是指一个短视频账号,通过不同的链接实现品牌展示,在不同的粉丝流量账号中互相转发同一个品牌,在主账…...
Spring事务注解@Transactional的流程和源码分析
Spring事务简介 Spring事务有两种方式: 编程式事务:编程式事务通常使用编程式事务管理API实现,比如Spring提供的PlatformTransactionManager接口,使用它手工编码去操控事务。声明式事务:注解式事务使用AOP࿰…...
在别的地方下载的二次封装Windows镜像怎么安装?GHO镜像详细安装教程
前言 在系统之家或者其他地方下载的镜像文件怎么装到电脑上? 首先要知道系统之家下载的Windows镜像文件基本上都是.iso结尾的,要进入到对应镜像包才能看出系统镜像是什么格式。 如何分辨镜像的格式 选择对应的.iso镜像,点击【鼠标右键】-【装…...
使用Lerna + Yarn Workspace管理Monorepo项目
1.前言 通常,我们会根据自身业务的实际情况,将通用的组件、逻辑等提取成NPM包,方便以后复用。但这些提取出来的NPM包可能互相之间存在依赖,如果仍然采用 Multirepo 的形式进行管理,则在包的版本管理、依赖管理、调试等…...
如何将gzip后缀压缩包重命名任意后缀名并依然通过gzip.open()读取压缩包文件内容
在 Python 中,gzip.open() 用于解压缩 .gz 后缀的文件。因此,如果您将文件的后缀从 .gz 更改为其他后缀,例如 .diy,然后尝试使用 gzip.open() 打开它,会导致失败,因为 Python 会尝试使用 gzip 解压缩它&…...
C语言从入门到精通 第十一章(文件操作)
写在前面: 本系列专栏主要介绍C语言的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程。除了参考下面的链接教程以外,笔者还参考了其它的一些C语言教材,笔者认为重要的部分大多都会用粗体标注…...
安装安卓studio无法下载sdk解决方法
安装安卓studio无法下载sdk的解决方法如下: 因为google被墙了,android sdk无法下载。 只要修改host文件,就可以下载sdk了。host文件的位置在:C:\Windows\System32\drivers\etc\hosts host文件添加如下内容: #google_…...
express+mysql+vue,从零搭建一个商城管理系统10--添加商品
提示:学习express,搭建管理系统 文章目录 前言一、新建models/goods.js二、新建routes/goods.js三、添加goods表四、添加商品总结 前言 需求:主要学习express,所以先写service部分 一、新建models/goods.js models/goods.js con…...
java实现大文件的分割与合并
最近遇到一个问题,某网盘上传文件时,文件大小超过了4个G ,不能上传,所以就想到了利用的java的IO流,将文件分割成多个小文件,上传到网盘上,等到需要用的时候,下载下来然后再进行文件的…...
【计网】TCP协议安全与风险:深入探讨网络通信的基石
🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 目录 🌐前言 🔒正文 TCP (Transmission Control Protocol): UDP (User Datagram Protocol): HTTP (Hypertext Transfer …...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
