[[patterns]]
 
class Area : public QWidget
{
public:
    void dragEnterEvent (QDragEnterEvent * event);
};
    Area * area;
    area = new Area;
    area->setAcceptDrops(true);
    area->setParent (ui->base);
    QSize s = ui->base->size();
    area->setGeometry(4, 4, s.width()-8, s.height()-8);
 
    QPalette palette;
    QBrush brush1 (QColor (255, 255, 155));
    brush1.setStyle (Qt::SolidPattern);
    palette.setBrush (QPalette::Active, QPalette::Window, brush1);
    area->setPalette (palette);
    area->setAutoFillBackground (true);
void Area::dragEnterEvent (QDragEnterEvent * event)
{
    event->setAccepted (true);
}

toolbox (QTreeWidgetItem) … kontextove menu … Go to slot … itemPressed

void MainWindow::on_toolbox_itemPressed(QTreeWidgetItem *item, int column)
{
    QDrag * drag = new QDrag (this);
    QMimeData * mimeData = new QMimeData ();
    // mimeData->setText ("Hello");
    drag->setMimeData (mimeData);
    drag->exec (Qt::CopyAction);
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QTreeWidget>
#include <QPushButton>
#include <QSpinBox>
 
namespace Ui {
class MainWindow;
}
 
class Factory : public QTreeWidgetItem
{
public:
    QWidget * create ();
};
 
class ButtonFactory : public Factory
{
public:
    QWidget * create () { return new QPushButton; }
    ButtonFactory () { setText (0, "Button"); }
};
 
class EditFactory : public Factory
{
public:
    QWidget * create () { return new QSpinBox; }
    EditFactory () { setText (0, "Spin Box"); }
};
 
class Area : public QWidget
{
public:
    void dragEnterEvent (QDragEnterEvent * event);
};
 
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void on_toolbox_itemPressed(QTreeWidgetItem *item, int column);
 
private:
    Ui::MainWindow *ui;
    Area * area;
};
 
 
 
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
#include <QDrag>
#include <QMimeData>
#include <QDragEnterEvent>
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    area = new Area;
    area->setAcceptDrops(true);
    area->setParent (ui->base);
    QSize s = ui->base->size();
    area->setGeometry(4, 4, s.width()-8, s.height()-8);
 
    QPalette palette;
    QBrush brush1 (QColor (255, 255, 155));
    brush1.setStyle (Qt::SolidPattern);
    palette.setBrush (QPalette::Active, QPalette::Window, brush1);
    area->setPalette (palette);
    area->setAutoFillBackground (true);
 
    ui->toolbox->addTopLevelItem (new ButtonFactory);
    ui->toolbox->addTopLevelItem (new EditFactory);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
// #include <QDrag>
// #include <QMimeData>
 
void MainWindow::on_toolbox_itemPressed (QTreeWidgetItem *item, int column)
{
    QDrag * drag = new QDrag (this);
    QMimeData * mimeData = new QMimeData ();
    mimeData->setText ("Hello");
    drag->setMimeData (mimeData);
    drag->exec (Qt::CopyAction | Qt::MoveAction | Qt::LinkAction);
}
 
void Area::dragEnterEvent (QDragEnterEvent * event)
{
    event->setAccepted (true);
}
 
patterns.txt · Last modified: 2014/12/04 12:54 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki