我创建了一个自定义小部件,它必须在单击 ToolButton 时显示为弹出菜单。我如何在 Qt 5.1.1 中做到这一点?

最佳答案

您应该创建自定义 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;
}

然后,您可以将小部件添加到要在弹出菜单中显示的工具按钮:
myCustomWidgetAction * widgetAction   = new myCustomWidgetAction(this);

ui->toolButton->addAction(widgetAction);
myCustomWidget 可以是任何小部件。您可以将 myCustomWidgetAction 的多个实例添加到 toolButton。

关于c++ - 如何将自定义小部件添加为 ToolButton 的弹出菜单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27014845/

10-10 23:30