首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QComboBox在QPushButton上添加菜单

问使用QComboBox在QPushButton上添加菜单
EN

Stack Overflow用户
提问于 2014-02-02 22:23:12
回答 1查看 1.1K关注 0票数 1

我正在尝试使用QComboBox的弹出功能在QPushButton上实现一个弹出菜单。

当我点击按钮时,会出现一个菜单,但它们是按钮和菜单之间的空格。我如何删除它?

我还希望当我将鼠标悬停在菜单中的某个项目上时,文本颜色保持不变。

我该怎么做?

我已经试着解决这个问题3天了,但没有得到任何解决方案的CSS或任何QComboBox函数。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-02-03 19:37:03

您可以使用QToolButton而不是QPushButton,并向QToolButton添加操作。您应该创建自定义QWidgetAction以添加到弹出菜单中。

这是示例QWidgetAction:

代码语言:javascript
复制
#include <QWidgetAction>

class  myCustomWidgetAction: public QWidgetAction
{
    Q_OBJECT
public:
    explicit myCustomWidgetAction(QWidget * parent);

protected:
    QWidget * createWidget(QWidget *parent);

};


myCustomWidgetAction::myCustomWidgetAction(QWidget * parent):QWidgetAction(parent) {
}
QWidget * myCustomWidgetAction::createWidget(QWidget *parent){
    myCustomWidget * widget=new myCustomWidget(parent);
    return widget;
}

然后,您可以将您的小部件添加到要在弹出菜单中显示的toolButton:

代码语言:javascript
复制
myCustomWidgetAction * widgetAction   = new myCustomWidgetAction(this);

ui->toolButton->addAction(widgetAction);

您的自定义小部件可以是包含不同元素的列表,也可以是任何其他小部件。您还可以向toolButton添加多个myCustomWidgetAction实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21511666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档