css - 单击按钮时如何制作水平下拉菜单?

标签 css qt

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

在 ascii 绘图中,水平下拉菜单在按钮下方显示如下:

按钮
|图片0 |图片1 |图片2 |图片3 |

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

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 属性...

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

谢谢!!

最佳答案

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

QMenu menu;
QToolBar toolbar;
toolbar.addAction("A");
toolbar.addAction("B");
QWidgetAction act(&toolbar);
act.setDefaultWidget(&toolbar);
menu.addAction(&act);
menu.exec();

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

关于css - 单击按钮时如何制作水平下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851910/

相关文章:

javascript - JQuery 显示/隐藏 div 从下拉列表更改

html - 浏览器如何解决冲突的类?

QTableView - 对标题进行排序

css - 将两个 div 彼此相邻放置(在另一个 div 内)

javascript - CSS padding 在 IE8/jquery 中消失

C++/Qt,获取派生对象变量名作为列表?

c++ - QNetworkAccessManager 错误代码 99;仅在某些系统上……

qt - 音频可视化器帮助

c++ - 在 Mac OS 上禁用窗口

javascript - jQuery :not with anchor exclude div and img elements