QToolButton是否可以在其顶部而不是下方显示与其相关的QMenu?
我已经看到this答案,这很令我满意,但是它是使用Python编写的,我真的不知道如何正确移植它。
我也查看了source code for 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;
}