当前位置: 首页 > news >正文

Qt如何让按钮的菜单出现在按钮的右侧

直接上代码,我们用到了一个eventfilter的函数功能。这个函数比较厉害和重要,大家务必经常拿出来看看。

dfcb71e19c374bdf8880e482d7d3d83e.png

 

void MainWindow::initMenu()
{
    QMenu* menuLiXiang = new QMenu;
    QAction* actXiangMuZhangCheng = new QAction("项目章程");
    menuLiXiang->addAction(actXiangMuZhangCheng);

    ui->btnLiXiang->setMenu(menuLiXiang);

    ui->btnLiXiang->setArrowType(Qt::RightArrow);
 

    menuLiXiang->installEventFilter(this);

 

}

bool MainWindow::eventFilter(QObject * obj, QEvent *event)
{
    if (event->type() == QEvent::Show && obj == ui->btnLiXiang->menu())
    {
        QPoint pos = ui->btnLiXiang->mapToGlobal(ui->btnLiXiang->rect().topRight());

        ui->btnLiXiang->menu()->move(pos);
        return true;
    }
    return false;
}

 

http://www.lryc.cn/news/364921.html

相关文章:

  • C++的类和new和delete和菱形继承机制
  • Redis教程(二十二):Redis的过期删除和缓存淘汰策略
  • Lodop 实现局域网打印
  • HarmonyOS(二十四)——Harmonyos通用事件之触摸事件
  • 2024-前端面试的正确打开方式(GitHub火爆场景题剖析)
  • Vue3项目炫酷实战,检测密码强度值
  • PHP实现抖音小程序用户登录获取openid
  • Linux进程无法被kill
  • MySQL binlog三种模式
  • 【CentOS 7】挑战探索:在CentOS 7上实现Python 3.9的完美部署指南
  • oracle删除表空间和用户命令
  • 企业微信hook接口协议,ipad协议http,获取未发送群发列表
  • oracle中的INTERVAL函数学习总结
  • 爬虫(没)入门:用 node-crawler 爬取 blog
  • GAMES104笔记
  • ARM功耗管理架构演进及变迁
  • ARM-V9 RME(Realm Management Extension)系统架构之系统能力的设备隔离和保护
  • 如何为律师制作专业的商务名片?含电子名片二维码
  • 方案设计|汽车轮胎数显胎压计方案
  • MySQL学习——选项文件的使用
  • Vulnhub-DC-3
  • docker 停止重启容器命令start/stop/restart详解(容器生命周期管理教程-2)
  • lua字符串模式匹配
  • 【深度学习】温故而知新4-手写体识别-多层感知机+CNN网络-完整代码-可运行
  • ChatGPT 论文翻译指南!解锁高质量翻译的秘密!
  • SQLserver通过CLR调用TCP接口
  • 前复权、后复权,技术分析看哪个?价值投资呢?
  • Python正则表达式:深度解析URL匹配与操作
  • [C][数据结构][顺序表]详细讲解+实现
  • vscode运行Java utf-8文件中文乱码报错