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;

}

相关推荐
资讯综合2 分钟前
2026全国云渲染网站排名 不同需求用户适配榜单
开发语言·前端·javascript
aramae3 分钟前
模拟实现strcpy(字符串拷贝)(C语言)
java·c语言·开发语言·算法
PHP实战开发录20 分钟前
PHP接口超时后为什么任务还在跑
开发语言·前端·php·开发
m0_7345717620 分钟前
深入理解C++ 构造函数<十一> initializer_list 构造
开发语言·c++
数据狐(Datafox)32 分钟前
京东商品详情API接口解析(附 JSON 样例)
java·开发语言·json
Wang's Blog36 分钟前
Java框架快速入门: Spring Security+OAuth2之深度定制UserDetailsService与密码无缝升级
java·开发语言·spring
白远山44 分钟前
智慧场馆解决方案小程序系统开发实战与架构设计指南
java·开发语言·小程序·架构
ECT-OS-JiuHuaShan1 小时前
哲学是迭代学,数学是拓扑学
开发语言·人工智能·学习·算法·机器学习·php·拓扑学
影视飓风TIM1 小时前
C++异常与RAII智能指针笔记
开发语言·c++·笔记
BD_Marathon1 小时前
调用DeepSeek官网的DeepSeek模型
开发语言·chrome·python