PyQt5中QTablewidget生成右键菜单

QTablewidget生成右键菜单,需要自定义一个QTablewidget类

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QMenu, QAction, QDialog
from PyQt5.QtCore import Qt
from PyQt5 import QtCoreclass CustomTableWidget(QTableWidget): def __init__(self, parent=None):super(CustomTableWidget, self).__init__( parent)self.setRowCount(10)self.setColumnCount(2)# 初始化表格数据self.setHorizontalHeaderLabels(['姓名','班别']) #水平标题names = ['小天','小米','小云','小月','小芳','小贝','小美','小亮','小欢','小阳']classes = ['一班','一班','一班','二班','二班','二班','二班','三班','三班','三班']i = 0for item in names:self.setItem(i,0, QTableWidgetItem(item))#添加内容到表格中self.setItem(i,1, QTableWidgetItem(classes[i]))i += 1# 创建右键菜单self.popup_menu = QMenu(self)self.action1 = QAction("显示", self)#生成一个选项self.popup_menu.addAction(self.action1)#将选项添加到菜单中# 连接动作到槽函数(可选)self.action1.triggered.connect(self.on_action1_triggered)def mousePressEvent(self, event):#重写mousePressEventif event.button() == Qt.RightButton:# 获取点击的单元格位置self.row = self.rowAt(event.y())#行self.column = self.columnAt(event.x())#列super().mousePressEvent(event)#调用父类的mousePressEvent处理其他事件# 显示右键菜单self.popup_menu.exec_(event.globalPos())else:super().mousePressEvent(event)#调用父类的mousePressEvent处理其他事件def on_action1_triggered(self):# 菜单选项action1的动作print(f"行:{self.row}  列:{self.column}")if __name__ == '__main__':app = QApplication(sys.argv)dialog = QDialog()dialog.resize(400, 300)table = CustomTableWidget(dialog)  # 创建一个表格table.setGeometry(QtCore.QRect(70, 50, 256, 192))dialog.show()sys.exit(app.exec_())

按F5运行,在界面的表格中按右键时,显示菜单
在这里插入图片描述
选中显示是,控制台输出选中的行数和列数
在这里插入图片描述
QAction的信号

信号内容
triggered点击或回车键触发时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/651123.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建产品帮助体系简单易用思路

在这个数字化时代,产品帮助体系的在企业中占据着很大的地位。对于用户来说,一个简单易用的产品帮助体系非常重要,可以指引他们快速找到产品的相关信息。那么,如何搭建一个简单易用的产品帮助体系呢?下面,我…

2024/4/23 C++day1

有以下定义,说明哪些量可以改变哪些不可以改变? const char *p; 指针可以改变 值不可以改变 const (char *) p; 语法错误 char *const p; 指针不可以改变 值可以改变 const char* const p; 指针和值…

使用Excel生成sql脚本(insert/update/delete)

目录 前言 一、Excel文件脚本变量 二、操作示例 前言 在系统使用初期,存在某种原因,需要对数据库数据进行批量处理操作。往往都是通过制定Excel表格,通过Excel导入到数据库中,所以就弄一个excel生成sql的导入脚本,希…

中国茶叶在世界范围的普及

正如世界上所有美好的事物一样,茶的传播一样遭遇了反对的声音。 如反对者亨利萨威尔(1678)斥责饮茶是肮脏的习俗。 乔纳斯汉威在《论茶》(1756)中说,男人饮茶会丧失身材威仪,女人饮茶则容颜尽…

玩转nginx的配置文件3

1. limit_req_zone配置限流 limit_req_zone $binary_remote_addr zonemylimit:10m rate10r/s;upstream myweb {server 10.0.105.196:80 weight1 max_fails1 fail_timeout1;}server {listen 80;server_name localhost;location /login {limit_req zonemylimit;proxy_pass http:…

vue项目使用百度地图

打开百度地图开放平台 百度地图开放平台 | 百度地图API SDK | 地图开发 在控制台新建应用 复制访问应用的ak 可修改地图样式 使用部分 <!-- 引入地图 --><div class"main-aside"><div id"b-map-container"></div></div> …

C语言程序设计:预处理命令

预处理命令 基础知识 预处理命令简介 C语言的预处理命令是指编译之前由预处理器执行的指令&#xff0c;用于在源代码中进行一些预处理操作。 常见预处理命令 (1) #define 定义一个宏&#xff0c;用于替换源代码中的标识符为指定的文本。 #define MAX_NUM 100 int arr[MAX_NU…

神经网络应用

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

NXP i.MX8系列平台开发讲解 - 3.10 Linux PCIe资源分配与访问(二)

目录 1. PCIe BFD 2. PCIe 配置空间 2.1 PCIe 配置空间访问 PCIe I/O访问方法 PCIe MMIO访问方法 3. PCIe BAR相关 4. PCIe Capbility 5. PCIe 操作 本文将重点讲解PCIe的资源访问相关内容&#xff0c;对于PCIe资源访问是从Host 端老看可以对PCIe进行配置与访问的资源主…

《生成式AI导论》学习笔记

1.课程定位 2.什么是生成式人工智慧&#xff1f; 3. 今日的生成式人工智慧厉害在哪里&#xff1f; 4.训练不了人工智慧&#xff1f;那我训练自己 5.训练不了人工智慧&#xff1f;你可以训练你自己&#xff08;中&#xff09;——拆解问题使用工具 6.大语言模型修炼史——第一阶…

小程序AI智能名片S2B2C商城系统:解锁内容深耕新境界,助力品牌企业高效定制内容策略

在数字化时代&#xff0c;内容营销已成为品牌企业获取市场份额、增强用户黏性的关键武器。然而&#xff0c;面对海量的互联网信息和复杂多样的社交媒体平台&#xff0c;如何有效地深耕内容&#xff0c;成为众多品牌企业面临的难题。 传统的内容分类与识别方式&#xff0c;往往依…

(三)登录和注册(handle_auto.go)

登录和注册(handle_auto.go) 文章目录 登录和注册(handle_auto.go)一、所需要的结构体信息二、注册三、登录四、退出 一、所需要的结构体信息 type UserAuth struct{}type LoginReq struct {Username string json:"username" binding:"required"Password …