Qt简单编辑--代替部件默认的弹出菜单

实现弹出菜单通过搜索好像有很多办法,但按简单至上的原则,我想要简单实现并容易理解并下次能记住的办法。
首先了解一下部件的原生弹出菜单,这里部件以Text Edit为例。
在部件属性栏(我至此还不知道那个栏叫什么名字)有一“contextMenuPolicy”,中文叫上下文菜单或弹出菜单。
【喷,英文与中文,中西观念不同,把我搞到头晕。context直译是上下文的意思,但从形式动作来看,这种按鼠标右键出来的菜单好像是弹出来的。叫上下文是逻辑关系,叫弹出是东方的形象思维。】
这个contextMenuPolicy可设置的,如图。
这里写图片描述
默认状态下是这样子的。
这里写图片描述
从逻辑上来看,我自己造个菜单来代替这个默认的就行了?
要有弹出菜单,就先制造菜单,其实还不用菜单,简单地制造Action就行了【喷,又是术语,Action可理解是菜单中的按钮吧,但那又不是按钮,凌乱中…】

    te_main_action = new QAction(QIcon("icon/save_floppy_48px_1187937_easyicon.net.ico"),"保存",this);
    connect(te_main_action,SIGNAL(triggered()),this,SLOT(context_menu_test()));
    ui->te_main->addAction(te_main_action);

上面的te_main是Text Edit控件。
还要定义槽函数

void MainWindow::context_menu_test()
{
    ui->statusBar->showMessage("弹出菜单测试");
}

不要忘记声明。于是默认的弹出菜单就被我Diy的菜单所代替。
这里写图片描述

简单的总结就是。

  1. 把部件的contextMenuPolicy设置成ActionsContexMenu。
  2. Diy自己的菜单或Action。
  3. 把Action装进部件中。
  4. 连接槽函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值