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;

}

相关推荐
shangan_313 分钟前
C语言学习
c语言·开发语言·学习
栈溢出了14 分钟前
LangGraph State 学习笔记
开发语言·人工智能·python
HEJOO917 分钟前
Go 语言结构体定义与实例详解
开发语言·算法·golang
(Charon)18 分钟前
【C++面试】手写智能指针(一):从unique_ptr理解独占所有权与移动语义
开发语言·c++
Brilliantwxx25 分钟前
【STM32】 DMA 源码分析与实战(下):DMA 收发状态机与 HAL 分层
android·开发语言·stm32·单片机·嵌入式硬件·mcu
Ai-_Man37 分钟前
请问豆包的智能体聊天记录该怎么弄
开发语言·前端·javascript·人工智能·小程序·ecmascript·电脑
言乐61 小时前
Python根据关联词搜索模型
开发语言·人工智能·python·机器学习·django
纪念 2291 小时前
C++ string(一)
android·开发语言·c++
一木 之林1 小时前
阿里云百炼与通义千问接入
开发语言·php
纪念 2291 小时前
C++算法(二)
开发语言·c++·算法