精华内容
下载资源
问答
  • QT 控件添加鼠标右键事件

    千次阅读 2020-12-16 10:48:57
    QT 控件添加单击右键事件给需要处理事件的控件添加事件过滤器重写eventFilter(QObject *watched, QEvent *event)函数 给需要处理事件的控件添加事件过滤器 在构造函数内 添加事件过滤器 ui->控件->...

    给需要处理事件的控件添加事件过滤器

    在构造函数内 添加事件过滤器

    	ui->控件->installEventFilter(this);	//添加事件过滤器
    

    重写eventFilter(QObject *watched, QEvent *event)函数

    
    //重写函数
    bool</
    展开全文
  • qt 右键菜单事件

    千次阅读 2019-05-05 15:21:48
    使用右键菜单,方法很多 有一篇博客很全 Qt实现右键菜单的五种方法!(以QListWidget为例) 但是常用的就是重写virtual void contextMenuEvent(QContextMenuEvent *event);右键菜单函数. 以保存halcon图片为例子; ...

    有时候需要右键菜单完成一些小功能,不方便直接用按钮;

    使用右键菜单,方法很多 有一篇博客很全 Qt实现右键菜单的五种方法!(以QListWidget为例)

    但是常用的就是重写virtual void contextMenuEvent(QContextMenuEvent *event);右键菜单函数.

    以保存halcon图片为例子;

    一 头文件

    #include <QContextMenuEvent> 

    二 重写事件声明

    protected :
    	virtual void contextMenuEvent(QContextMenuEvent *event);
    private slots:
    void saveimage();
    	

    三 具体实现

    void CameraDtecte1::contextMenuEvent(QContextMenuEvent *event) {
      //创建一个菜单 添加事件
    	QMenu *menu = new QMenu();
    	QAction *minimized = new QAction(u8"保存图片",this);
    
    	menu->addAction(minimized);
    
    	connect(minimized, SIGNAL(triggered(bool)), this, SLOT(saveimage()));
            //让菜单移动到鼠标位置并显示.
    	menu->exec(QCursor::pos());
    }
    void CameraDtecte1::saveimage()
    {
    	HObject image;
    	HTuple win;
    	try {
    		if (CurrentCCD.right(1).toInt() <= 6)
    		{
    			win = hv_WindowID[CurrentCCD.right(1).toInt()];
    			DumpWindowImage(&image,win);
    			QString filename = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("保存文件位置"), "", tr("image file(*.bmp)"));
    			if (!filename.isNull()) {
    				QTextCodec *pcode = QTextCodec::codecForName("gb18030");
    				string na = pcode->fromUnicode(filename).data();
    				WriteImage(image, "bmp", 0, na.c_str());
    			}
    
    		}
    	}
    	catch (exception) {
    
    	}
    	
    	
    }

     

    展开全文
  • QT鼠标右键弹出菜单选项

    千次阅读 2020-10-28 16:46:56
    第二步:右键按钮转到槽,信号选择customContextMenuRequested 第三步:转到槽后,在槽函数中搞如下代码 void MainWindow::on_pushButton_customContextMenuRequested(const QPoint &/*pos*/) // 注释掉pos { ...

    老规矩,直接开始步骤

    第一步:在UI界面设置按钮的contextMenuPolicy 属性选为CustomContextMenu 保存
    在这里插入图片描述
    第二步:右键按钮转到槽,信号选择customContextMenuRequested
    在这里插入图片描述

    第三步:转到槽后,在槽函数中搞如下代码

    void MainWindow::on_pushButton_customContextMenuRequested(const QPoint &/*pos*/) // 注释掉pos
    {
        QMenu *cmenu = new QMenu(ui->pushButton);
    
        QAction *action1 = new QAction(tr("删除"), this);
        action1->setData(1);
        cmenu->addAction(action1);
        // 下面这个on_menu_click(bool)槽函数做自己想做的事
        connect(action1, SIGNAL(triggered(bool)), this, SLOT(on_menu_click(bool))); 
        cmenu->exec(QCursor::pos());
    }
    

    第四步:加头文件

    #include <QMenu>
    

    第五步:运行看效果

    在这里插入图片描述

    展开全文
  • QT鼠标右键弹出菜单

    千次阅读 2019-10-10 09:44:01
    在用QT编程时,有时候要实现鼠标右键弹出菜单的功能.下面代码演示鼠标右键弹出菜单. 1.新建一个QT工程,点击MainWindow.ui,鼠标右键Go to slot.....,添加customContextMenuRequested(const QPoint &pos)...

    在用QT编程时,有时候要实现鼠标右键弹出菜单的功能.下面代码演示鼠标右键弹出菜单.

    1.新建一个QT工程,点击MainWindow.ui,鼠标右键Go to slot.....,添加customContextMenuRequested(const QPoint &pos)事件

    2.找到属性页中的contextMenuPolicy,把DefaultContextMenu改成CustomContextMenu.保存关闭MainWindow.ui

     

    3.在on_MainWindow_customContextMenuRequested(const QPoint &pos)函数体添加一下代码

     

    void MainWindow::on_MainWindow_customContextMenuRequested(const QPoint &/*pos*/)
    {
        //创建菜单对象
        QMenu *pMenu = new QMenu(this);
    
        QAction *pNewTask = new QAction(tr("新建任务"), this);
        QAction *pEditTask = new QAction(tr("设置任务"), this);
        QAction *pDeleteTask = new QAction(tr("删除任务"), this);
    
        QAction *pToolRenName = new QAction(tr("改名工具"), this);
        QAction *pToolEdot = new QAction(tr("设置工具"), this);
        QAction *pToolDelete = new QAction(tr("删除工具"), this);
    
        //1:新建任务 2:设置任务 3:删除任务 4:改名工具 5:设置工具 6:删除工具
        pNewTask->setData(1);
        pEditTask->setData(2);
        pDeleteTask ->setData(3);
        pToolRenName->setData(4);
        pToolEdot->setData(5);
        pToolDelete ->setData(6);
    
        //把QAction对象添加到菜单上
        pMenu->addAction(pNewTask);
        pMenu->addAction(pEditTask);
        pMenu->addAction(pDeleteTask);
        pMenu->addAction(pToolRenName);
        pMenu->addAction(pToolEdot);
        pMenu->addAction(pToolDelete);
    
        //连接鼠标右键点击信号
        connect(pNewTask, SIGNAL(triggered()), this, SLOT(onTaskBoxContextMenuEvent()));
        connect(pEditTask, SIGNAL(triggered()), this, SLOT(onTaskBoxContextMenuEvent()));
        connect(pDeleteTask, SIGNAL(triggered()), SLOT(onTaskBoxContextMenuEvent()));
        connect(pToolRenName, SIGNAL(triggered()), this, SLOT(onTaskBoxContextMenuEvent()));
        connect(pToolEdot, SIGNAL(triggered()), this, SLOT(onTaskBoxContextMenuEvent()));
        connect(pToolDelete, SIGNAL(triggered()), SLOT(onTaskBoxContextMenuEvent()));
    
        //在鼠标右键点击的地方显示菜单
        pMenu->exec(cursor().pos());
    
        //释放内存
        QList<QAction*> list = pMenu->actions();
        foreach (QAction* pAction, list) delete pAction;
        delete pMenu;
    }
    
    void MainWindow::onTaskBoxContextMenuEvent()
    {
        QAction *pEven = qobject_cast<QAction *>(this->sender()); //this->sender()就是发信号者 QAction
    
        //获取发送信息类型 1:新建任务 2:设置任务 3:删除任务 4:改名工具 5:设置工具 6:删除工具
        int iType = pEven->data().toInt();
    
        switch (iType)
        {
        case 1:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        case 2:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        case 3:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        case 4:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        case 5:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        case 6:
            QMessageBox::about(this, "tip", pEven->text());
            break;
        default:
            break;
        }
    }
    

    4、 运行程序,在对应的控件上鼠标右键点击,即可看到效果。

    展开全文
  • 本工程实现了qt开发的界面上,右击鼠标弹出菜单,并在点击菜单后弹出提示框。 是个适合初学者的小例子。 用到了重写鼠标响应事件 解决了中文显示为乱码的问题
  • qt鼠标右键的简单实现

    千次阅读 2018-07-10 12:11:12
    Qt Widgets Application,命名为my_RightButton ,下一步取消创建界面选框,然后下一步直到完成!首先打开MainWindow.cpp ,在其构造函数中写入代码!先添加两个dock窗口,然后设置一个主窗口,代码如下(注释如下说明...
  • qt5 鼠标拖拽事件 —— 编程 教学 游戏 demo, 详细看文档https://mp.csdn.net/postedit/81049635; 里面有源代码,ui设计和文档
  • QT实现鼠标右键快捷菜单(QTableWidget)

    万次阅读 多人点赞 2016-08-03 16:31:23
    对于右键点击事件,这里用到的是Qt::CustomContextMenu方法,本例通过右点QTableWidget,显示下拉菜单,同时获得点击的行号。 ui界面如下图: //customContextMenuRequested(QPoint)信号是QWidget中唯一右键...
  • QMenu----QT鼠标右键弹出菜单

    万次阅读 2018-11-28 17:36:31
    在用QT编程时,有时候要实现鼠标右键弹出菜单的功能.下面代码演示鼠标右键弹出菜单. 1.新建一个QT工程,点击MainWindow.ui,鼠标右键Go to slot.....,添加customContextMenuRequested(const QPoint &amp;pos...
  • 当在一个窗口里按住鼠标按键、或移动、或释放就会产生鼠标事件QMouseEvent #include <QMouseEvent> //鼠标双击事件 void mouseDoubleClickEvent(QMouseEvent *event);
  • Qt5实现的使用鼠标右击即可在相应位置出现一个弹出菜单
  • QT鼠标右键菜单的创建方法与示例

    千次阅读 2013-08-30 14:28:48
    Qwidget和他的子类都可以有右键菜单,QWidget下与右键菜单有关的函数有: a)  Qt::ContentMenuPlicy contentMenuPolicy()  const b) void setContentMenuPolicy ( Qt :: ContentMenuPolicy policy ) 其中,a)...
  • QT QMouseEvent 鼠标事件

    千次阅读 2019-06-30 16:03:06
    通常是重定义部件的鼠标事件处理函数来进行一些自定义的操作。 Protected: void mousePressEvent(QMouseEvent *event); //鼠标按下事件 void mouseReleaseEvent(QMouseEvent *event); //鼠标释放事件 void ...
  • 在用QT编程时,有时候要实现鼠标右键弹出菜单的功能.下面代码演示鼠标右键弹出菜单. 1.新建一个QT工程,点击MainWindow.ui,鼠标右键Go to slot.....,添加customContextMenuRequested(const QPoint &pos)...
  • QT鼠标右键信号触发 customContextMenuRequested没有反应问题处理 xxx(发出该信号的对象)->setContextMenuPolicy(Qt::CustomContextMenu);
  • 加上这句ListWidget->setContextMenuPolicy(Qt::CustomContextMenu); 或在Qt Designer中设置。
  • QT 鼠标右键菜单

    万次阅读 多人点赞 2012-06-11 14:13:57
    QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数: Qt::ContextMenuPolicy contextMenuPolicy () const void setContextMenuPolicy ( Qt::ContextMenuPolicy policy ) Qt::...
  • //MainWindow.cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ... //为tablewidget注册事件过滤器 ui-&gt;tableWidget-&gt;instal...
  • qt 未实现鼠标左键的单击,双击事件,该代码利用巧妙利用定时器区分左键的单击,双击事件
  • Qt学习之QPushButton右键菜单
  • Qt 鼠标事件过滤

    千次阅读 2018-07-26 11:01:30
    在之前的鼠标事件的基础上 在myLabel.cpp和.h中加上bool event函数      bool myLabel::event(QEvent *e)  {  if(e-&gt;type()==QEvent::MouseButtonPress)  {  QMouseEvent *event = static_cast&...
  • QT新学,参考网上资源,学会了一种为特定Widget添加右键弹出菜单的一种方法: 目标:为ui中的一个widge(变量名:tui.m_VtkWidget)添加右键弹出菜单,通过分隔条为多个菜单项进行分组,示例如下 在主窗口的构造...
  • 文章目录qt右键菜单 qt右键菜单 第一步 准备菜单 //定义菜单 QMenu *RightButtonMenu; //右键菜单 QAction *saveSreenShot; //保存到粘贴板 QAction *saveCopyAs; //另存为 QAction *quitSreenShot; //退出截图 ...
  • (2)绑定右键事件槽 connect(ui->tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showRightmenu(QPoint))); (3)在槽中处理菜单显示 void showRightmenu(QPoint) { ...
  • setContextMenuPolicy(Qt::CustomContextMenu); 二、绑定右击信号、槽函数 我是直接在控件上右击,选择信号:customContextMenuRequested(const QPoint &pos) void Dialog::on_Dialog_...
  • 如何判断鼠标右键点击事件

    千次阅读 2016-12-15 09:30:38
    在一个项目上刚好会用到右键点击事件进行悬浮层的弹出,这个时候就需要进行鼠标右键点击事件的判断 $('.button').mousedown(function(e){ alert(e.which) //判断鼠标点击的是什么键 1:左键 2:滚轮 3:右键 if(e....
  • Qt学习之QPushButton添加右键菜单2.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,975
精华内容 2,790
关键字:

qt鼠标右键事件