Go back to Richel Bilderbeek's homepage.

Go back to Richel Bilderbeek's C++ page.

 

 

 

 

 

(C++) TestGraphicsProxyWidget

 

TestGraphicsProxyWidget is a tool to test the GraphicsProxyWidget class.

 

 

 

 

 

Downloads

 

Technical facts

 

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

 

 

 

 

 

Qt project file: ./ToolTestGraphicsProxyWidget/ToolTestGraphicsProxyWidgetDesktop.pro

 

include(../../DesktopApplication.pri)
include(../../Libraries/Boost.pri)
include(../../Libraries/GeneralConsole.pri)
include(../../Libraries/GeneralDesktop.pri)

include(ToolTestGraphicsProxyWidgetDesktop.pri)

SOURCES += \
  qtmain.cpp

 

 

 

 

 

./ToolTestGraphicsProxyWidget/ToolTestGraphicsProxyWidgetConsole.pri

 

INCLUDEPATH += ../../Tools/ToolTestGraphicsProxyWidget

 

 

 

 

 

./ToolTestGraphicsProxyWidget/ToolTestGraphicsProxyWidgetDesktop.pri

 

include(ToolTestGraphicsProxyWidgetConsole.pri)

SOURCES += \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxywidgetmaindialog.cpp \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxywidget.cpp \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxyitem.cpp \
    ../../Tools/ToolTestGraphicsProxyWidget/qtsomedialog.cpp


HEADERS  += \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxywidgetmaindialog.h \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxywidget.h \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxyitem.h \
    ../../Tools/ToolTestGraphicsProxyWidget/qtsomedialog.h

FORMS    += \
    ../../Tools/ToolTestGraphicsProxyWidget/qttestgraphicsproxywidgetmaindialog.ui \
    ../../Tools/ToolTestGraphicsProxyWidget/qtsomedialog.ui

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qtmain.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QApplication>
#include "qttestgraphicsproxywidgetmaindialog.h"
#pragma GCC diagnostic pop

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QtTestGraphicsProxyWidgetMainDialog w;
  w.show();
  return a.exec();
}

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qtsomedialog.h

 

#ifndef SOMEDIALOG_H
#define SOMEDIALOG_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QDialog>
#pragma GCC diagnostic pop

namespace Ui {
  class QtSomeDialog;
}

class QtSomeDialog : public QDialog
{
    Q_OBJECT
    
public:
    explicit QtSomeDialog(QWidget *parent = 0);
    QtSomeDialog(const QtSomeDialog&) = delete;
    QtSomeDialog& operator=(const QtSomeDialog&) = delete;
    ~QtSomeDialog();
    
private:
    Ui::QtSomeDialog *ui;
};

#endif // SOMEDIALOG_H

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qtsomedialog.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include "qtsomedialog.h"
#include "ui_qtsomedialog.h"
#pragma GCC diagnostic pop

QtSomeDialog::QtSomeDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QtSomeDialog)
{
    ui->setupUi(this);
}

QtSomeDialog::~QtSomeDialog()
{
    delete ui;
}

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxyitem.h

 

#ifndef QTBOUNCINGBALL_H
#define QTBOUNCINGBALL_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#include <QGraphicsItem>
#include <QGraphicsProxyWidget>
#pragma GCC diagnostic pop
struct QGraphicsScene;

struct QtTestGraphicsProxyItem : public QGraphicsProxyWidget
{
  QtTestGraphicsProxyItem(QGraphicsItem *parent, Qt::WindowFlags wFlags);
};

#endif // QTBOUNCINGBALL_H

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxyitem.cpp

 

#include <cassert>
#include <cmath>

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QList>
#include <QPainter>
#include "qttestgraphicsproxyitem.h"
#pragma GCC diagnostic pop

QtTestGraphicsProxyItem::QtTestGraphicsProxyItem(QGraphicsItem *parent, Qt::WindowFlags wFlags)
: QGraphicsProxyWidget(parent,wFlags)
{

}

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxywidget.h

 

#ifndef QTBOUNCINGBALLSWIDGET_H
#define QTBOUNCINGBALLSWIDGET_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#include <QGraphicsView>
#pragma GCC diagnostic pop

struct QGraphicsScene;
struct QtSomeDialog;

struct QtTestGraphicsProxyWidget : public QGraphicsView
{
  QtTestGraphicsProxyWidget(QWidget *parent = 0);


  protected:
  void resizeEvent(QResizeEvent *event);

  private:
  std::vector<QtSomeDialog *> m_dialogs;

  //Proxies of the added widgets
  std::vector<QGraphicsProxyWidget *> m_proxies;
  QGraphicsScene * const m_scene;

};

#endif // QTBOUNCINGBALLSWIDGET_H

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxywidget.cpp

 

#include <cassert>

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QTimer>
#include <QGraphicsScene>
#include "qttestgraphicsproxyitem.h"
#include "qttestgraphicsproxywidget.h"
#include "qtsomedialog.h"
#pragma GCC diagnostic pop

QtTestGraphicsProxyWidget::QtTestGraphicsProxyWidget(QWidget *parent)
  : QGraphicsView(parent),
    m_dialogs{},
    m_proxies{},
    m_scene(new QGraphicsScene(this->rect(),this))
{
  this->setScene(m_scene);

  for (int i=0; i!=3; ++i)
  {
    //QtTestGraphicsProxyItem * const item = new QtTestGraphicsProxyItem(0,0);
    //item->setWidget(new SomeDialog);
    //m_scene->addItem(item);
    QtSomeDialog * const dialog = new QtSomeDialog; //Adding 'this' as parent results in an error!
    //m_dialogs.push_back(dialog);
    QGraphicsProxyWidget * const proxy = new QGraphicsProxyWidget(0,Qt::Window);
    proxy->setWidget(dialog);

    //MUST DO THIS?
    proxy->setCacheMode(QGraphicsItem::DeviceCoordinateCache);

    //m_scene->addWidget(dialog);
    m_scene->addItem(proxy);
    assert(proxy);
    proxy->setPos((i+1) * 100, (i+1)* 100);
    proxy->setRotation( proxy->rotation() + ((static_cast<double>(i)+1.0) * 10.0));
    //m_proxies.push_back(proxy);


    //item->setPos(
    //  static_cast<double>((i - 1) * 32) + (0.5 * static_cast<double>(width())),
    //  static_cast<double>((i - 1) * 32) + (0.5 * static_cast<double>(height())));
  }

  //Turn off the scrollbars, as they look ugly
  this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
  this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}


void QtTestGraphicsProxyWidget::resizeEvent(QResizeEvent *)
{
  m_scene->setSceneRect(this->rect());
}

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxywidgetmaindialog.h

 

#ifndef TOOLTESTGRAPHICSPROXYWIDGETMAINDIALOG_H
#define TOOLTESTGRAPHICSPROXYWIDGETMAINDIALOG_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#include <QDialog>
#pragma GCC diagnostic pop

namespace Ui {
class QtTestGraphicsProxyWidgetMainDialog;
}

class QtTestGraphicsProxyWidgetMainDialog : public QDialog
{
    Q_OBJECT
    
public:
    explicit QtTestGraphicsProxyWidgetMainDialog(QWidget *parent = 0);
    QtTestGraphicsProxyWidgetMainDialog(const QtTestGraphicsProxyWidgetMainDialog&) = delete;
    QtTestGraphicsProxyWidgetMainDialog& operator=(const QtTestGraphicsProxyWidgetMainDialog&) = delete;
    ~QtTestGraphicsProxyWidgetMainDialog() noexcept;
    
private:
    Ui::QtTestGraphicsProxyWidgetMainDialog *ui;
};

#endif // TOOLTESTGRAPHICSPROXYWIDGETMAINDIALOG_H

 

 

 

 

 

./ToolTestGraphicsProxyWidget/qttestgraphicsproxywidgetmaindialog.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include "qttestgraphicsproxywidget.h"
#include "qttestgraphicsproxywidgetmaindialog.h"
#include "ui_qttestgraphicsproxywidgetmaindialog.h"
#pragma GCC diagnostic pop

QtTestGraphicsProxyWidgetMainDialog::QtTestGraphicsProxyWidgetMainDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::QtTestGraphicsProxyWidgetMainDialog)
{
  ui->setupUi(this);
  ui->layout->addWidget(new QtTestGraphicsProxyWidget(this));
}

QtTestGraphicsProxyWidgetMainDialog::~QtTestGraphicsProxyWidgetMainDialog() noexcept
{
  delete ui;
}

 

 

 

 

 

Go back to Richel Bilderbeek's C++ page.

Go back to Richel Bilderbeek's homepage.

 

Valid XHTML 1.0 Strict

This page has been created by the tool CodeToHtml