Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何添加自定义小部件作为ToolButton的弹出菜单?_C++_Qt_Widget_Qt5_Qtoolbutton - Fatal编程技术网

C++ 如何添加自定义小部件作为ToolButton的弹出菜单?

C++ 如何添加自定义小部件作为ToolButton的弹出菜单?,c++,qt,widget,qt5,qtoolbutton,C++,Qt,Widget,Qt5,Qtoolbutton,我已经创建了一个自定义小部件,当单击ToolButton时,它必须显示为弹出菜单。如何在Qt 5.1.1中执行此操作?您应该创建自定义QWidgetAction以添加到弹出菜单中 这是一个示例QWidgetAction: #include <QWidgetAction> class myCustomWidgetAction: public QWidgetAction { Q_OBJECT public: explicit myCustomWidgetAction(

我已经创建了一个自定义小部件,当单击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;
}

myCustomWidget
可以是任何小部件。您可以将多个
myCustomWidgetAction
实例添加到toolButton。

@SureshR如果工作正常,则将答案标记为已接受。开始接受所有有助于解决其他问题的答案。否则,下次你遇到问题时,没有人会帮助你;)
myCustomWidgetAction * widgetAction   = new myCustomWidgetAction(this);

ui->toolButton->addAction(widgetAction);