Qt工作笔记-自定义菜单(右键菜单)
所以,只要重写createWIdget()这个函数就阔以了!
把写好的界面放到这个parent里面不就阔以了!
写好的界面如下:
运行截图如下:
源码如下:
mypopwidget.h
#ifndef MYPOPWIDGET_H
#define MYPOPWIDGET_H#include <QWidget>namespace Ui {
class MyPopWidget;
}class MyPopWidget : public QWidget
{Q_OBJECTpublic:explicit MyPopWidget(QWidget *parent = 0);~MyPopWidget();private:Ui::MyPopWidget *ui;
};#endif // MYPOPWIDGET_H
mywidgetaction.h
#ifndef MYWIDGETACTION_H
#define MYWIDGETACTION_H#include <QObject>
#include <QWidgetAction>class MyWidgetAction : public QWidgetAction
{Q_OBJECT
public:explicit MyWidgetAction(QWidget *parent = 0);protected:QWidget *createWidget(QWidget *parent);
};#endif // MYWIDGETACTION_H
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
class QMenu;namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();public slots:void onContextMenu(const QPoint &pt);private:Ui::Widget *ui;QMenu *m_menu;
};#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
mypopwidget.cpp
#include "mypopwidget.h"
#include "ui_mypopwidget.h"MyPopWidget::MyPopWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MyPopWidget)
{ui->setupUi(this);
}MyPopWidget::~MyPopWidget()
{delete ui;
}
mywidgetaction.cpp
#include "mywidgetaction.h"
#include "mypopwidget.h"MyWidgetAction::MyWidgetAction(QWidget *parent): QWidgetAction(parent)
{}QWidget *MyWidgetAction::createWidget(QWidget *parent)
{MyPopWidget *myPopWidget=new MyPopWidget(parent);return myPopWidget;
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QMenu>
#include <QDebug>
#include <QPoint>
#include "mywidgetaction.h"
#include <QPushButton>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);ui->listView->setContextMenuPolicy(Qt::CustomContextMenu);connect(ui->listView,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(onContextMenu(QPoint)));
}Widget::~Widget()
{delete ui;
}void Widget::onContextMenu(const QPoint &pt)
{m_menu=new QMenu(this);MyWidgetAction *widgetAction=new MyWidgetAction(m_menu);m_menu->addAction("传统的-第一个右键");m_menu->addAction(widgetAction);m_menu->exec(ui->listView->mapToGlobal(pt));
}
Qt工作笔记-自定义菜单(右键菜单)相关推荐
- Qt工作笔记-自定义开关控件
1.自定义开关控件: 2.点击有动画效果: 3.在动画效果中,不再响应信号: 运行截图如下: 输出响应信号: 源码如下: myonoff.h #ifndef MYONOFF_H #define MYO ...
- Qt工作笔记-自定义QSortFilterProxyModel实现多列分别过滤
程序运行截图如下: 原理,重写QSortFilterProxyModel类中的filterAcceptsRow即可: 源码如下: mysortfilterproxymodel.h #ifndef MY ...
- Qt工作笔记-自定义模型【继承QAbstractTableModel】
程序运行截图如下: 代码如下: mymodel.h #ifndef MYMODEL_H #define MYMODEL_H#include <QAbstractTableModel> #i ...
- Qt工作笔记-自定义打印及存日志及stderr转stdout(Linux程序调试技巧,提高开发效率)
如下的代码: #include <QCoreApplication> #include <QDebug> #include <QByteArray> #includ ...
- 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]
许多从事Web开发的会发现有些事,我们需要禁用浏览器本事自带的右键菜单,而实现自定义的右键菜单 下面我们也来实现一个自定义的右键菜单 首先来创建JSP页面 1 <%@ page language ...
- 自定义桌面右键菜单-Win 10 版
自定义桌面右键菜单-Win 10 版 进入注册表编辑器 编辑新菜单 查看效果 进入注册表编辑器 通过快捷键"win+r",弹出运行框,输入 regedit .如下图所示: 在打开的 ...
- 关于电脑注册表regedit自定义管理右键菜单选项实例(删除增加)
前言:删除电脑多余右键菜单的具体操作 所有关于电脑的操作都可以通过修改注册表来实现.而随着电脑软件的安装,本就为方便人们操作的右键菜单变的愈来愈臃肿.但我们可以自定义管理大多数右键菜单,这篇帖子就是为 ...
- w764位计算机右键管理,Win7自定义管理右键菜单的完美步骤
Win7系统右键菜单就像是一个快捷键的使用,用户通过右键菜单能够快速打开自己所要打开的程序,很多用户认为右键菜单上的选项是固定的,其实不是的,用户可以通过自定义管理来让右键菜单更加完美. Win7自定 ...
- 如何在canvas画布上自定义鼠标右键菜单内容?
用户大大提了一个需求,想要在画布上能够右键快捷点击使用某个功能,小菜鸟肯定要满足啊(委屈脸),然后靠着强大的各路神仙,写下了如下代码,终于实现了,为自己放个烟花~~~不喜勿喷哦~ 1.自定义鼠标右键菜 ...
最新文章
- 大端模式字节序和位序以及操作
- 微服务和其他常见架构
- Linux 命令(103)—— unzip 命令
- 计算机及服务器硬件组成结合企业运维场景知识
- 【LeetCode-面试算法经典-Java实现】【129-Sum Root to Leaf Numbers(全部根到叶子结点组组成的数字相加)】...
- 临时号码,接收短信验证码
- 用excel做logistic回归分析_利用SPSS进行Logistic回归分析
- 高通平台添加自己的product后com.qualcomm.qti.tetherservice不停crash
- Android中的PackageManager
- matlab可以做什么,matlab仿真用来干什么
- 找出若干个非零数中的最小值以及它们的平均值
- 各层电子数排布规则_按照核外电子排布规律:各电子层最多容纳电子数2n2(n为电子层数,...
- brew upgrade出现It seems there is already an App at的解决方法
- 今日头条自动开宝箱脚本
- 磐石计划(二)——虚拟机win7安装KB4474419和 KB4490628补丁
- AP Memory IoT RAM——嵌入式物联网最佳存储解决方案
- 如何基于WebRTC搭建一个简单的视频会议
- OpenCV 最新版windows下安装教程
- [iOS]一行代码集成空白页面占位图(基于runtime+MJRefresh思想)
- 用自编码器对数据进行降维