首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyQt5 QTableWidget右键单击单元格不会产生QMenu

PyQt5是一个用于创建图形用户界面(GUI)的Python库。QTableWidget是PyQt5中的一个控件,用于显示和编辑表格数据。在QTableWidget中,右键单击单元格不会自动产生QMenu菜单。

要实现右键单击单元格产生QMenu菜单的功能,可以通过以下步骤来实现:

  1. 创建一个自定义的QTableWidget子类,例如CustomTableWidget。
  2. 重写CustomTableWidget的contextMenuEvent()方法,该方法会在右键单击事件发生时被调用。
  3. 在contextMenuEvent()方法中,创建一个QMenu对象,并添加所需的菜单项。
  4. 调用QMenu的exec_()方法显示菜单。

下面是一个示例代码,演示了如何实现右键单击QTableWidget单元格产生QMenu菜单的功能:

代码语言:python
代码运行次数:0
复制
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QMenu, QAction
from PyQt5.QtCore import Qt

class CustomTableWidget(QTableWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        
    def contextMenuEvent(self, event):
        menu = QMenu(self)
        
        # 添加菜单项
        action1 = QAction("菜单项1", self)
        action2 = QAction("菜单项2", self)
        menu.addAction(action1)
        menu.addAction(action2)
        
        # 显示菜单
        menu.exec_(event.globalPos())

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        
        tableWidget = CustomTableWidget(self)
        self.setCentralWidget(tableWidget)
        
        # 添加表格数据
        tableWidget.setColumnCount(3)
        tableWidget.setRowCount(3)
        tableWidget.setItem(0, 0, QTableWidgetItem("单元格1"))
        tableWidget.setItem(0, 1, QTableWidgetItem("单元格2"))
        tableWidget.setItem(0, 2, QTableWidgetItem("单元格3"))
        
if __name__ == "__main__":
    app = QApplication([])
    mainWindow = MainWindow()
    mainWindow.show()
    app.exec_()

在上述示例代码中,CustomTableWidget是自定义的QTableWidget子类,重写了contextMenuEvent()方法。在该方法中,创建了一个QMenu对象,并添加了两个菜单项。最后调用menu.exec_(event.globalPos())显示菜单。

这样,当右键单击CustomTableWidget的单元格时,就会弹出一个包含两个菜单项的QMenu菜单。

对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求和场景选择适合的产品。腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储、人工智能等。可以访问腾讯云官方网站(https://cloud.tencent.com/)获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQt5 高级界面控制(表格、树、tab、dock、scrollbar、多文档界面)

表格与树 1.1 QTableView 1.2 QListView 1.3 QListWidget 1.4 QTableWidget 表根据界面宽度自动伸缩 禁止编辑 单击某单元,使之默认选中整行 设置宽高度与内容相匹配...是否显示表头 单元格中放置`控件` 输入行号,快速定位行 设置颜色 加粗字体 排序 文本对齐 合并单元格 设置单元格大小 显示网格线 设置图片、更改图片大小 获取单元格内容 右键菜单 1.5 QTreeView...https://doc.qt.io/qtforpython/index.html https://www.riverbankcomputing.com/static/Docs/PyQt5 1....) 单击某单元,使之默认选中整行 tablewidget.setSelectionBehavior(QTableWidget.SelectRows) 设置宽高度与内容相匹配 tablewidget.resizeColumnsToContents...().selection().indexes(): row_num = i.row() menu = QMenu() item1 = menu.addAction

7K20
  • PYQT中的菜单和工具栏

    在这部分的PyQt5教程中,我们将创建菜单和工具栏。菜单式位于菜单栏的一组命令操作。工具栏是应用窗体中由按钮和一些常规命令操作组成的组件。 QMainWindow类提供了一个应用主窗口。...使用创建新菜单QMenu。 impMenu = QMenu('Import', self) 将一个动作添加到子菜单中addAction()。...例如,在Opera网页浏览器中,当我们右键单击网页时,我们会得到一个上下文菜单。在这里,我们可以重新加载页面,返回或查看页面源。如果我们右键单击工具栏,我们将获得另一个用于管理工具栏的上下文菜单。.../usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial This program creates a context...mainwindow 在这个部分的PyQt5中,我们使用了菜单、工具栏、状态栏和一个应用主窗口。

    2.6K30

    手把手教你用 Python 实现浪漫表白程序

    其中具体效果图如下: 本浪漫程序的技术路线分为以下几个部分: 通过 Pyqt5 模块构建透明窗口,并设置聊天窗等功能,设置右键功能,使其功能启动“浪漫程序“; 开始宠物系统再通过多线程启动其他程序,包含弹窗程序...程序实现主要分为初始化透明窗口、设置托盘选项、右键菜单功能、设置聊天对话框功能以及动作时间交替等部分,整体程序的实现有 pyqt5 构成。...= f.read() self.sentence = text.split("\n") 2、鼠标控制 2.1 鼠标点击事件 鼠标点击 icon 传递的信号会带有一个整形的值,1是表示单击右键...,2是双击,3是单击左键。...其中部分代码如下: # 当按右键的时候,这个event会被触发 def contextMenuEvent(self, event): menu = QMenu(self) video

    1.8K30

    【QT】控件 -- 多元素类 | 容器类 | 布局类

    表格中的每个单元格,是一个 QTableWidge tItem 对象。..., int previousColumn) 选中不同单元格时触发 QTableWidget tltem 核心方法 核心方法 说明 row() 获取当前是第几行 column() 获取当前是第几列 setText...QSizePolicy::Minimum:控件的最小尺寸为固定值,布局时不会超过该值。 QSizePolicy::Maximum:控件的最大尺寸为固定值,布局时不会小于该值。...属性 说明 width 宽度 height 高度 hData 水平方向的 sizePolicy- QSizePolicy::Ignored: 忽略控件的尺寸,不对布局产生影响。...- QSizePolicy::Minimum: 控件的最小尺寸为固定值,布局时不会超过该值。QSizePolicy::Maximum: 控件的最大尺寸为固定值,布局时不会小于该值。

    12910

    PyQT模块、类、控件介绍

    QtTest模块 包含了通过单元测试,调试PyQt5应用程序的功能。 QtHelp模块 包含了用于创建和查看可查找的文档的类。 QtOpenGL模块 使用OpenGL库来渲染3D和2D图形。...QComboBox:下拉框类 QDialog:对话框类 QCheckBox:复选框类 QMenuBar:它作用就是在窗口顶部生成菜单类栏 QMenu:菜单栏选项类,它的作用就是生成选项 QTabWidget...QListWidgetItem一起使用 QListWidgetItem:列表控件的子项 QProgressBar:进度条控件类 QRadioButton:单选框控件类 QPlainTextEdit:纯文本编辑框 QTableWidget...:表格控件类 QTableWidgetItem:表格单元格选项,与QTableWidget一起使用 QTextBrowser:文本浏览器 QSplitter:组件分割器,实现窗体分割 QDialogButtonBox

    64431

    Python 玩出花儿,把罗小黑养在自己桌面

    而这一次我们将不会采用这种方式,具体见下面代码讲解。文末附源码。 ? 效果图 系统概述 首先,我们只做桌宠的目的是为了方便操作电脑,故这一版本将包含搭建免python环境去运行程序。...: 1import os 2os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = "Lib\site-packages\PyQt5\Qt\plugins" 3import...因为考虑到桌宠在不需要的时候方便管理,设置托盘图标可以随时隐藏桌宠和显示桌宠: 1# 设置托盘选项 2iconpath="1.jpg" (5)设置右键菜单功能的初始化 : 1#右键菜单 2quit_action...: 这里设置的右键菜单有的功能需要按照自己的电脑路径等进行自行修改: 1# 当按右键的时候,这个event会被触发 2def contextMenuEvent(self, event): 3...menu = QMenu(self) 4 code = menu.addAction("代码") 5 py = menu.addAction("python—test") 6 hide

    2.1K10

    excel常用操作大全

    ,然后单击右键,并在弹出菜单中选择菜单项“选择所有工作表”。此时,您的所有操作都针对所有工作表,无论是设置页眉和页脚还是打印工作表。...)一般不会打印,但有时它根本不会打印,因此有必要删除这些表格格线只需单击“文件”、“页面设置”和“工作表”菜单,单击“格线",网”左侧的选择框,然后取消选择“格线".网” 17.如何快速报告?...如果没有选择一个项目,则在应用表格样式时不会使用它。 18、如何快速复制单元格格式? 要将格式化操作复制到数据的另一部分,请使用“格式化画笔”按钮。...21、用鼠标右键拖动单元格填充手柄 在前一节中,介绍了用鼠标左键拖动单元格填充手柄自动填充数据序列的方法。事实上,用鼠标右键拖动单元格填充手柄更灵活。...Excel会将ZM(2)视为公式中的一个函数,从而产生错误。因此,ZM(2)工作表应该重新命名。 29.如何拆分或取消拆分窗口?

    19.3K10

    Excel图表学习45: 裁剪图表

    图1 注意,将图表裁剪或者是将Y轴的图形截断会让人产生误解或者混淆,因此,请谨慎使用。...步骤2:绘制堆积柱形图 选取单元格区域C6:D14,单击功能区选项卡“插入——图表”组中的“柱形图——二维堆积柱形图”,结果如下图4所示。 ?...图4 步骤3:添加标记系列 选择单元格区域E6:E14,复制数据。选择图表,单击功能区选项卡“开始——粘贴——选 择性粘贴”,出现如下图5所示的对话框。 ? 图5 单击“确定”,结果如下图6所示。...图6 在该系列上单击右键,选择“更改系列图表类型”,在图7所示的“更改图表类型”对话框 中,将该系列更改为“带数据标记的折线图”。 ? 图7 将该系列的线条设置为“无线条”,结果如下图8所示。...选择底部的柱形系列,单击右键,单击“添加数据标签”。 选择数据标签,单击右键,选择“设置数据标签格式”,将数据标签设置为: ? 图11 设置字体颜色为“白色”,删除图例,结果如下图12所示。 ?

    2.5K30

    『开发技术』LabelImg安装及使用介绍

    但是,强烈建议使用Python 3或更高版本以及PyQt5。...您可以考虑使用以下脚本:build-tools / build-for-macos.sh 视窗 安装Python, PyQt5 并安装lxml。...单击“菜单/文件”中的“更改默认保存的注释文件夹” 点击“打开目录” 点击“创建RectBox” 单击并释放鼠标左键以选择要注释矩形框的区域 您可以使用鼠标右键拖动矩形框进行复制或移动 注释将保存到您指定的文件夹中...在工具栏右下方的“保存”按钮下,单击“PascalVOC”按钮切换到YOLO格式。 您可以使用Open / OpenDIR处理单个或多个图像。完成单个图像后,单击“保存”。...保存图像时,classes.txt也会更新,而以前的注释不会更新。 保存为YOLO格式时不应使用“默认类”功能,不会引用它。 保存为YOLO格式时,丢弃“难”标志。

    2.1K30

    C++ Qt开发:ToolBar与MenuBar菜单组件

    上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。...,只需要在MainWindow中选择添加工具来新增,默认会在窗口顶部增加,如果想要在四面增加可以使用Add Tool Bar to Other Area选项实现;1.3.1 应用菜单组件通常情况下我们不会使用...1.3.3 增加右键菜单Qt中的菜单还可以实现任意位置的弹出,该功能的实现依赖于QMainWindow主窗体中的customContextMenuRequested()事件,该事件是Qt中的一个信号,通常与右键菜单...该信号在用户请求上下文菜单时触发,例如通过右键单击某个小部件(如窗口、按钮、表格等)时。...我们可以将右击customContextMenuRequested()事件绑定到主窗口中,实现在窗体任意位置右击都可以弹出菜单栏,读者可以直接在主界面中点击右键转到槽,如下图;当读者点击主窗体中的右键时则会触发

    2.7K10

    C++ Qt开发:ToolBar与MenuBar菜单组件

    上下文菜单: QMenuBar 也可以用作上下文菜单(右键菜单),在特定区域点击右键时显示相应的菜单项。...只需要在MainWindow中选择添加工具来新增,默认会在窗口顶部增加,如果想要在四面增加可以使用Add Tool Bar to Other Area选项实现; 1.3.1 应用菜单组件 通常情况下我们不会使用...通常与右键菜单(上下文菜单)相关。...该信号在用户请求上下文菜单时触发,例如通过右键单击某个小部件(如窗口、按钮、表格等)时。...我们可以将右击customContextMenuRequested()事件绑定到主窗口中,实现在窗体任意位置右击都可以弹出菜单栏,读者可以直接在主界面中点击右键转到槽,如下图; 当读者点击主窗体中的右键时则会触发

    1K10

    打破常规的图表制作新思维!!!

    但是大家别忘记了,Excel背后还有单元格呢,Excel之所以成为图表神器除了自带丰富的内置图表种类及样式之外,其灵活的单元格操作也可以作为图表的辅助元素来帮我们达到美化图表的作用。...以上需要用到锚定单元格技术,主要技巧如下: 图表生成之后,单击图表右键,单开属性界面,选择需要的对象位置。...❶设置完成之后,摁住ALT键不放,然后鼠标拖动图表,找一个空白位置,将图表左上角接近某一个单元格左上角,此时软件会默认将图表与单元格左上角锚定对齐。...❷再次摁住Alt键不放,将鼠标移动到图表右下角,此时光标会变成双箭头,拉动箭头,此时软件会自动的按照单元格步长缩放图表(图表左上角位置不会变),根据自己需要选定一个单元格停止拉动即可。...❹对了图表格式化的时候一定要取消绘图区和图表区的填充色和外框线,否则会遮挡单元格中的文本(在图表的绘图区、图表区分别右键单击设置相应属性就OK了)。

    86170

    用Python制作一个桌面宠物,真好玩!

    本文灵感和部分代码来源于一篇知乎文章,感兴趣的朋友可以访问如下链接[1] 好了,废话不多说,我直接上干货,本项目使用 PYQT5 作为编码框架,如果你对于该框架不是特别熟悉的话,建议先去简单学习一下~..., "30", 'shime1.png')) self.image = QLabel(self) self.setImage(image) self.show() 效果如下: 可以看到,一个简易的不会动的宠物已经出现了...else: self.flag_up = True except Exception as e: print(e) 右键菜单...对于该桌面宠物,我们还定义了四个右键菜单,分别为移动、停止、睡觉,退出 """右键菜单函数""" def rightMenu(self): self.myMenu = QMenu(self)...self.myMenu.addAction(self.actionC) self.myMenu.addAction(self.actionD) self.myMenu.popup(QCursor.pos()) 对于右键菜单绑定的动作函数

    60640

    用 Python 制作一个桌面宠物,好玩!

    10002&support_redirect=0&mmversion=false 本文灵感和部分代码来源于一篇知乎文章,感兴趣的朋友可以访问如下链接[1] 好了,废话不多说,我直接上干货,本项目使用 PYQT5..."30", 'shime1.png')) self.image = QLabel(self) self.setImage(image) self.show() 效果如下: 可以看到,一个简易的不会动的宠物已经出现了...else: self.flag_up = True except Exception as e: print(e) 右键菜单...对于该桌面宠物,我们还定义了四个右键菜单,分别为移动、停止、睡觉,退出 """右键菜单函数""" def rightMenu(self): self.myMenu = QMenu(self)...self.myMenu.addAction(self.actionC) self.myMenu.addAction(self.actionD) self.myMenu.popup(QCursor.pos()) 对于右键菜单绑定的动作函数

    98120
    领券