#include "menutest.h"
MenuTest::MenuTest(QWidget *parent)
: QWidget(parent)
{
resize(QSize(240,180));
menuButton = new QPushButton(this);
menuButton->setFixedSize(80,24);
createMenu();
menuButton->setMenu(menu);
menuButton->setStyleSheet("QPushButton::menu-indicator{image:none}");
mainLayout = new QHBoxLayout(this);
mainLayout->addWidget(menuButton);
}
MenuTest::~MenuTest()
{
}
void MenuTest::createMenu()
{
menu = new QMenu("menu", this);
menu->installEventFilter(this);
QAction *action1 = new QAction("action#1", this);
QAction *action2 = new QAction("action#2", this);
menu->addAction(action1);
menu->addAction(action2);
}
bool MenuTest::eventFilter(QObject * obj, QEvent *event)
{
if (event->type() == QEvent::Show && obj == menuButton->menu())
{
int menuXPos = menuButton->menu()->pos().x();
int menuWidth = menuButton->menu()->size().width();
int buttonWidth = menuButton->size().width();
QPoint pos = QPoint(menuXPos - menuWidth + buttonWidth,
menuButton->menu()->pos().y());
menuButton->menu()->move(pos);
return true;
}
return false;
}