处理QMenu的triggered信号时遇到的一个问题

最近,在一个Qt程序中使用QMenu类时,遇到了一个小问题,特记录下。
首先,我模仿一下问题出现的场景:
假设我在做一个高大上的XX管理系统,比如说:学生信息管理系统。在这个系统中,学生的各项信息(比如:姓名、性别、年龄、班级、总分)使用数据库来存储。为了便于老师操作学生数据记录(比如:添加、修改、删除),我使用了一个QTableWidget(嗯,如果在MFC中的话,我会使用CListCtrl/CMFCListCtrl)来显示数据库中的所有学生记录。这个QTableWidget有多列,每列对应数据库中的一项(列)信息。
现在,我想给这个QTableWidget的header view上添加一个右键快捷菜单,也就是所谓的:Context menu。通过这个Context Menu,我们可以选择让QTableWidget中哪些列显示出来,哪些列不显示。

类似上面的这种需求很普遍。比如,Win 7系统的资源管理器就提供了这种功能,一图以蔽之:

怎样在Qt中为一个窗体部件上实现context menu?我找到了一些资料:

[QT]创建鼠标右键菜单

How to add a list of QActions to QMenu and handle them with a single slot?

Right-click context menus with Qt

百度文库:​Q​L​i​s​t​W​i​d​g​e​t​的​i​t​e​m​上​实​现​右​键​菜​单

我的测试代码:
主函数:

// main.cpp
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值