单击按钮后,如何制作水平下拉菜单?

时间:2016-03-07 19:07:34

标签: css qt

当点击QPushButton时,我正在尝试使用水平方向制作下拉弹出菜单, 菜单项仅为图标,没有快捷文本和菜单项文本。 Qt有可能吗? 我试过谷歌搜索,但我找不到解决方案,也没有在Qt文档中找到。

在ascii中,水平下拉菜单如下所示:

按钮
| Img0 | Img1 | Img2 | Img3 |

我已经对相关部分进行了编码:

QImage sourceImage(":/Res/layout/layout_wide_select.png");
int w = sourceImage.width() / 7;
int h = sourceImage.height();

QImage lay5= sourceImage.copy(0, 0, w, h);
QImage lay7= sourceImage.copy(w, 0, w, h);
....
m_menuWide = new QMenu(this);
QAction *actLay5 = m_menuWide->addAction(QIcon(QPixmap::fromImage(lay5)), "5view");
QObject::connect(actLay5, SIGNAL(triggered(bool)), this, SLOT(onSplitWideButtonClicked()));
actLay5->setData(QVariant(0));
QAction *actLay7 = m_menuWide->addAction(QIcon(QPixmap::fromImage(lay7)), "7view");
QObject::connect(actLay7, SIGNAL(triggered(bool)), this, SLOT(onSplitWideButtonClicked()));
actLay7->setData(QVariant(1));
...
m_btnSplitWide->setMenu(m_menuWide);

似乎在QMenu中没有类似setMenuDireciton()的方法,或者没有 QMenu属性可用于QMenu风格...

如果有人知道解决方案,我将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以查看QWidgetAction 这将为您的QMenu添加小部件。您可以创建动作的QWidget(可能是工具栏)并将其放在QWidgetAction上。并将widgetaction添加到您的QMenu。 示例代码:

completed

您只能使用图标更改操作“A”和“B”。