PDA

View Full Version : Create toolbox of QGraphicsSvgItem



giorgik
6th September 2010, 11:34
An example simple of code in order to create a toolbox of GraphicsSvgItem present in the QGraphicsScene ?

giorgik
7th September 2010, 10:08
File lista.h:

#include <QListWidget>
#include <QtGui/QGroupBox>

class Lista : public QListWidget
{
public:
Lista(QGroupBox *grp);

protected:
void mousePressEvent(QMouseEvent *event);
};
--------------------------------------------------------
File lista.cpp:

#include "lista.h"

#include <QDebug>

Lista::Lista(QGroupBox *grp) : QListWidget(grp)
{
}

void Lista::mousePressEvent(QMouseEvent *event)
{
qDebug() << "Lista::mousePressEvent().";

QListWidget::mousePressEvent(event);
}
--------------------------------------------------------
File risorsa.qrc:

<RCC>
<qresource>
<file>robot.svg</file>
<file>ostacolo.svg</file>
</qresource>
</RCC>
--------------------------------------------------------
File mainwindow.h:

#include <QMainWindow>
#include <QtGui/QGroupBox>
#include <QtGui/QListWidget>

#include "lista.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

protected:

private:
Ui::MainWindow *ui;
QGroupBox *gruppo;
Lista *lista;
};
--------------------------------------------------------
File mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

this->resize(520, 520);
gruppo = new QGroupBox(centralWidget());
gruppo->setTitle("Elementi");
gruppo->setGeometry(QRect(20, 30, 140, 470));
lista = new Lista(gruppo);
lista->setGeometry(QRect(10, 20, 120, 440));
lista->setSortingEnabled(true);
QListWidgetItem *item1 = new QListWidgetItem(QIcon(":/ostacolo.svg"), "Ostacolo", lista);
QListWidgetItem *item2 = new QListWidgetItem(QIcon(":/robot.svg"), "Robot", lista);
lista->insertItem(1, item1);//Item insertion
lista->insertItem(2, item2);
}

MainWindow::~MainWindow()
{
delete ui;
}
--------------------------------------------------------