В моем проекте у меня есть QMenu с элементом подменю. Подменю имеет много элементов, поэтому его высота относительно велика.
Я хочу вертикально центрировать подменю относительно элемента, который выполнил подменю.
Я уже создал подкласс подменю, которое хочу изменить, и попытался изменить геометрию на «aboutToShow» просто для проверки, но это не дало никакого эффекта:
class MySubMenu : public QMenu
{
Q_OBJECT
public:
QuickMod();
~QuickMod();
private slots:
void centerMenu();
};
MySubMenu::MySubMenu()
{
connect(this, SIGNAL(aboutToShow()), this, SLOT(centerMenu()));
}
MySubMenu::~MySubMenu()
{
}
void MySubMenu::centerMenu()
{
qDebug() << x() << y() << width() << height();
setGeometry(x(), y()-(height()/2), width(), height());
}
Вот изображение, которое я быстро нарисовал в MS Paint, которое, я надеюсь, наглядно объясняет, чего я пытаюсь достичь: (до и после)
Спасибо за ваше время!