Есть ли способ для QToolButton отобразить его связанный QMenu сверху, а не внизу?
я видел этот ответ, который меня порадовал, но он написан на Python, и я не знаю, как правильно его портировать.
Я также взглянул на исходный код для QMenu но это довольно сложно, поэтому я не знаю, как решить эту проблему.
На кнопке также есть небольшая стрелка, показывающая, что она опускается вниз.
Это самая нижняя часть моего окна, поэтому я бы хотел, чтобы оно всплывало на случай, если оно станет слишком большим для размещения.
Вы можете сделать это, используя фильтр событий:
QMenu* yourMenu;
yourButton->setMenu(yourMenu);
yourMenu->installEventFilter(this);
bool yourClass::eventFilter(QObject * obj, QEvent *event)
{
if (event->type() == QEvent::Show && obj == yourButton->menu())
{
QPoint pos = /*the position expected*/;
yourButton->menu()->move(pos);
return true;
}
return false;
}
Чтобы удалить маленькую стрелку, добавьте это в свою таблицу стилей:
QToolButton::menu-indicator{
image: none;
}
Других решений пока нет …