gpt4 book ai didi

c++ - 使用 QComboBox 在 QPushButton 上添加菜​​单

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:42 25 4
gpt4 key购买 nike

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

当我点击按钮时,会出现一个菜单,但按钮和菜单之间有一些空间。我该如何删除它?

当我将鼠标悬停在菜单中的某个元素上时,我还希望文本颜色保持固定。

我该怎么做?

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

谢谢。

最佳答案

您可以使用 QToolButton 代替 QPushButton 并向 QToolButton 添加操作。您应该创建自定义 QWidgetAction 以添加到弹出菜单。

这是示例 QWidgetAction:

#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 以在弹出菜单中显示:

myCustomWidgetAction * widgetAction   = new myCustomWidgetAction(this);

ui->toolButton->addAction(widgetAction);

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

关于c++ - 使用 QComboBox 在 QPushButton 上添加菜​​单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com