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;

}

相关推荐
紫金修道7 小时前
【DeepAgent】概述
开发语言·数据库·python
Via_Neo7 小时前
JAVA中以2为底的对数表示方式
java·开发语言
书到用时方恨少!7 小时前
Python multiprocessing 使用指南:突破 GIL 束缚的并行计算利器
开发语言·python·并行·多进程
cch89187 小时前
PHP五大后台框架横向对比
开发语言·php
天真萌泪7 小时前
JS逆向自用
开发语言·javascript·ecmascript
野生技术架构师8 小时前
一线大厂Java面试八股文全栈通关手册(含源码级详解)
java·开发语言·面试
Q一件事8 小时前
R语言制图-相关性及关系网络图
开发语言·r语言
坊钰8 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库
地下核武9 小时前
Ubuntu 24.04 在线安装 Qt 6.10.2 后 Qt Creator 无法启动问题记录与解决
linux·qt·ubuntu
551只玄猫9 小时前
【数学建模 matlab 实验报告1】
开发语言·数学建模·matlab·课程设计·实验报告