Как добавить пользовательский виджет в качестве всплывающего меню для ToolButton?

Я создал собственный виджет, он должен отображаться в виде всплывающего меню при нажатии на кнопку ToolButton. Как я могу сделать это в Qt 5.1.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 на кнопку инструмента.

4

Другие решения


По вопросам рекламы [email protected]