This example shows how to create and modify a toolbar from both new and existing menu items and GUI elements.
The code fragments are from exampleToolbarPluginInit.cxx code.
This example is a plug-in. You can run it by running ./bin64/exampleToolbar_stealth.bat (on Windows) or ./bin64/exampleToolbar_stealth.sh (on Linux). For more information about running examples, please see Running Applications and Examples.
#pragma once
namespace makVrv
{
class DtDe;
namespace vrvExampleToolbarPlugin
{
{
public:
DtExampleToolbar(DtDe&);
virtual ~DtExampleToolbar();
virtual QToolBar* createToolbar(DtDe&, QWidget* parent);
};
{
public:
DtExampleToolbarMenu(DtDe& de);
virtual ~DtExampleToolbarMenu();
virtual QMenu* createMenu(DtDe&, QWidget* parent);
};
{
public:
DtExampleSceneToolbarMenu(DtDe& de);
virtual ~DtExampleSceneToolbarMenu();
virtual QMenu* createMenu(DtDe&, QWidget* parent);
};
{
public:
virtual ~DtExampleToolbarMenuItem();
virtual QAction* createAction( DtDe&, QWidget* parent );
virtual void on_triggered();
};
{
public:
DtToolbarExampleCombo();
virtual ~DtToolbarExampleCombo();
virtual QWidget* create(
makVrv::DtDe& de, QWidget* parent,
const Qt::WindowFlags& flags);
};
}
}
#include <QtWidgets/QToolBar>
#include <QtWidgets/QAction>
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QMenu>
#include <QtWidgets/QComboBox>
namespace makVrv
{
namespace vrvExampleToolbarPlugin
{
: DtToolbar(de, "DtExampleToolbar")
{
}
DtExampleToolbar::~DtExampleToolbar()
{
}
QToolBar* DtExampleToolbar::createToolbar(DtDe&, QWidget* parent)
{
bar->setWindowTitle(QObject::tr("Example Toolbar"));
bar->setObjectName(QObject::tr("Example Toolbar"));
return bar;
}
DtExampleToolbarMenu::DtExampleToolbarMenu(DtDe& de)
: DtMenu(de, std::string("DtExampleToolbarMenu"))
{
}
DtExampleToolbarMenu::~DtExampleToolbarMenu()
{
}
QMenu* DtExampleToolbarMenu::createMenu( DtDe&, QWidget* parent )
{
QMenu* menu =
new QMenu(QMenu::tr(
"&Toolbars Example"),parent);
return menu;
}
DtExampleSceneToolbarMenu::DtExampleSceneToolbarMenu(DtDe& de)
: DtMenu(de, std::string("DtExampleSceneToolbarMenu"))
{
}
DtExampleSceneToolbarMenu::~DtExampleSceneToolbarMenu()
{
}
QMenu* DtExampleSceneToolbarMenu::createMenu( DtDe&, QWidget* parent )
{
QMenu* menu =
new QMenu(QMenu::tr(
"&Scene Toolbars Example"),parent);
menu->setIcon(QIcon(QString::fromStdString(myDe.dePathConfiguration().dataPath() + std::string("/Icons/TerrainScene.svg"))));
return menu;
}
DtExampleToolbarMenuItem::DtExampleToolbarMenuItem(DtDe& de)
: DtMenuItem(std::string("DtExampleToolbarMenuItem"))
{
}
DtExampleToolbarMenuItem::~DtExampleToolbarMenuItem()
{
}
QAction* DtExampleToolbarMenuItem::createAction( DtDe&, QWidget* parent )
{
act->setText(DtMenuItem::tr("&Example Toolbar Item..."));
return act;
}
void DtExampleToolbarMenuItem::on_triggered()
{
QWidget* parent = 0;
if(action)
{
parent = action->parentWidget();
}
QMessageBox::information(parent, "Toolbar Example", "This dialog was triggered from the toolbar example menu item");
}
DtToolbarExampleCombo::DtToolbarExampleCombo()
: DtWidgetBuilder()
{
}
DtToolbarExampleCombo::~DtToolbarExampleCombo()
{
}
QWidget* DtToolbarExampleCombo::create(
makVrv::DtDe& de, QWidget* parent,
const Qt::WindowFlags& flags)
{
combo->addItem("Item 1");
combo->addItem("Item 2");
combo->addItem("Item 3");
return combo;
}
}
}