182 QWidget* centralWidget =
new QWidget();
183 setCentralWidget(centralWidget);
185 centralWidget->setContentsMargins(0, 0, 0, 0);
186 QVBoxLayout* mainLayout =
new QVBoxLayout();
187 mainLayout->setContentsMargins(0, 0, 0, 0);
188 mainLayout->setSpacing(0);
189 centralWidget->setLayout(mainLayout);
192 QTabWidget* tabWidget =
new QTabWidget();
193 tabWidget->setObjectName(QStringLiteral(
"tabWidget"));
194 tabWidget->setGeometry(QRect(140, 60, 361, 241));
301 qRegisterMetaType<QDockWidget::DockWidgetFeatures>();
305 static const struct Set {
308 Qt::DockWidgetArea area;
310 {
"SceneGraph", 0, Qt::RightDockWidgetArea },
311 {
"Console", 0, Qt::BottomDockWidgetArea },
312 {
"Property", 0, Qt::RightDockWidgetArea },
313 {
"NodeEditor", 0, Qt::RightDockWidgetArea },
314 {
"Module", 0, Qt::RightDockWidgetArea }
316 const int setCount =
sizeof(sets) /
sizeof(
Set);
318 const QIcon qtIcon(QPixmap(
":/res/qt.png"));
321 PDockWidget *nodeEditorDockWidget =
new PDockWidget(tr(sets[3].name),
this, Qt::WindowFlags(sets[3].flags));
322 nodeEditorDockWidget->setWindowTitle(
"Node Editor");
323 nodeEditorDockWidget->setWindowIcon(qtIcon);
324 addDockWidget(sets[3].area, nodeEditorDockWidget);
330 PDockWidget *propertyDockWidget =
new PDockWidget(tr(sets[2].name),
this, Qt::WindowFlags(sets[2].flags));
331 propertyDockWidget->setWindowTitle(
"Property Editor");
332 propertyDockWidget->setWindowIcon(qtIcon);
333 propertyDockWidget->setMinimumWidth(580);
334 addDockWidget(sets[2].area, propertyDockWidget);
343 setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
344 setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
359 for (
auto qNode : qNodes)
362 qNode->nodeGraphicsObject().setSelected(
true);
364 qNode->nodeGraphicsObject().setSelected(
false);
369 connect(
mNodeFlowView->flowScene(), &Qt::QtNodeFlowScene::nodeSelected, [=](Qt::QtNode& n)
371 auto model = n.nodeDataModel();
372 auto widget = dynamic_cast<Qt::QtNodeWidget*>(model);
374 if (widget != nullptr)
376 mOpenGLWidget->select(widget->getNode());
377 mOpenGLWidget->update();
381 connect(mNodeFlowView->flowScene(), &Qt::QtNodeFlowScene::nodeDeselected, [=]()
383 mOpenGLWidget->select(nullptr);
384 mOpenGLWidget->update();
389 mOpenGLWidget->setFocus();
void mousePressEvent(QMouseEvent *event) override
void createWindow(int width, int height)
POpenGLWidget * mOpenGLWidget
PSettingEditor * mSettingEditor
PPropertyWidget * mPropertyWidget
PMainWindow(QtApp *app, QWidget *parent=Q_NULLPTR, Qt::WindowFlags flags=Qt::WindowFlags())
Qt::QtNodeFlowWidget * mNodeFlowView
void setupSettingEditor()
void showModuleEditor(Qt::QtNode &n)
PIODockWidget * mIoDockerWidget
PAnimationWidget * mAnimationWidget
void addNodeByName(std::string name)