我正在尝试使用QComboBox的弹出功能在QPushButton上实现一个弹出菜单。
当我点击按钮时,会出现一个菜单,但它们是按钮和菜单之间的空格。我如何删除它?
我还希望当我将鼠标悬停在菜单中的某个项目上时,文本颜色保持不变。
我该怎么做?
我已经试着解决这个问题3天了,但没有得到任何解决方案的CSS或任何QComboBox函数。
谢谢。
发布于 2014-02-03 19:37:03
您可以使用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);您的自定义小部件可以是包含不同元素的列表,也可以是任何其他小部件。您还可以向toolButton添加多个myCustomWidgetAction实例。
https://stackoverflow.com/questions/21511666
复制相似问题