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

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

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;

}

相关推荐
zlinear数据采集卡12 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai13 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间13 小时前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing
小努蛋13 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty
qz_Serene13 小时前
C++:类和对象(上)
开发语言·c++
西安景驰电子14 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
ctlover14 小时前
Python文件操作
开发语言·python
luj_176814 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
霸道流氓气质14 小时前
基于本地 PaddleOCR 的 PDF 文字识别完整技术文档
开发语言·r语言·pdf
wuyk55515 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表