当点击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风格...
如果有人知道解决方案,我将非常感激。
谢谢!
答案 0 :(得分:0)
您可以查看QWidgetAction 这将为您的QMenu添加小部件。您可以创建动作的QWidget(可能是工具栏)并将其放在QWidgetAction上。并将widgetaction添加到您的QMenu。 示例代码:
completed
您只能使用图标更改操作“A”和“B”。