Fix integration with Qt Creator

+ CMake build flag `QTK_UPDATE_SUBMODULES` to include Assimp as a git submodule
This commit is contained in:
2022-08-21 15:37:42 -04:00
parent 86b3f78368
commit ad4d4636a4
16 changed files with 173 additions and 88 deletions

View File

@@ -11,7 +11,7 @@
#include <meshrenderer.h>
#include <model.h>
#include <resourcemanager.h>
#include <scene.h>
#include <examplescene.h>
#include <texture.h>
using namespace Qtk;

View File

@@ -17,7 +17,6 @@
class ExampleScene : public Qtk::Scene {
public:
ExampleScene();
~ExampleScene();

View File

@@ -9,7 +9,7 @@
#include <QApplication>
#include <QLabel>
#include <mainwidget.h>
#include <qtkwidget.h>
#include <mainwindow.h>

View File

@@ -1,13 +1,24 @@
#include <mainwindow.h>
#include <ui_mainwindow.h>
#include <qtkwidget.h>
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
mScene = new ExampleScene();
ui->openGLWidget->setScene(mScene);
// For use in design mode using Qt Creator
// + We can use the `ui` member to access nested widgets by name
for (const auto widget : ui->qWidget->children()) {
auto qtkWidget = dynamic_cast<Qtk::QtkWidget*>(widget);
if (qtkWidget != nullptr) {
std::string key = qtkWidget->objectName().toStdString();
if (mScenes[key] == nullptr) {
mScenes[qtkWidget->objectName().toStdString()] = new ExampleScene();
}
qtkWidget->setScene(mScenes[qtkWidget->objectName().toStdString()]);
}
}
setWindowIcon(QIcon("../resources/icon.png"));
}

View File

@@ -1,10 +1,12 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <unordered_map>
#include <QMainWindow>
#include <qtk-widget_export.h>
#include <scene.h>
#include "qtk-widget_export.h"
#include <examplescene.h>
namespace Ui {
@@ -21,7 +23,7 @@ public:
private:
Ui::MainWindow *ui;
Qtk::Scene * mScene;
std::unordered_map<std::string, Qtk::Scene*> mScenes;
};
#endif // MAINWINDOW_H

View File

@@ -14,15 +14,25 @@
<string>Qtk - MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="Qtk::MainWidget" name="openGLWidget" native="true">
<widget class="QWidget" name="qWidget" native="true">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>775</width>
<height>550</height>
<x>0</x>
<y>0</y>
<width>801</width>
<height>561</height>
</rect>
</property>
<widget class="Qtk::QtkWidget" name="openGLWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>541</height>
</rect>
</property>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
@@ -94,9 +104,9 @@
</widget>
<customwidgets>
<customwidget>
<class>Qtk::MainWidget</class>
<extends>QWidget</extends>
<header>mainwidget.h</header>
<class>Qtk::QtkWidget</class>
<extends>QOpenGLWidget</extends>
<header>qtkwidget.h</header>
</customwidget>
</customwidgets>
<resources/>