#ifndef MYEDIT_H
#define MYEDIT_H
#include <QWidget>
#include <QPlainTextEdit>
class MyEdit : public QPlainTextEdit
{
// Q_OBJECT
public:
explicit MyEdit (QWidget *parent = nullptr);
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
};
#endif // MYEDIT_H
#include "myedit.h"
MyEdit::MyEdit(QWidget *parent) :
QPlainTextEdit (parent)
{
}
void MyEdit::dragEnterEvent(QDragEnterEvent *event)
{
event->setAccepted(true);
}
void MyEdit::dropEvent(QDropEvent *event)
{
}
#ifndef MYBUTTON_H
#define MYBUTTON_H
#include <QWidget>
#include <QToolButton>
class MyButton : public QToolButton
{
Q_OBJECT
public:
explicit MyButton (QWidget *parent = nullptr);
signals:
public slots:
// QWidget interface
protected:
void mousePressEvent(QMouseEvent *event);
};
#endif // MYBUTTON_H
#include "mybutton.h"
MyButton::MyButton(QWidget *parent) :
QToolButton(parent)
{
}
#include <QDrag>
#include <QMimeData>
void MyButton::mousePressEvent(QMouseEvent *event)
{
setText ("press");
QMimeData * data = new QMimeData;
data->setText("nejaky text");
QDrag * drag = new QDrag (this);
drag->setMimeData(data);
drag->start();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mybutton.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
MyButton * b = new MyButton;
b->setText("my button");
ui->mainToolBar->addWidget(b);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_action_Quit_triggered()
{
close ();
}
#include <QToolButton>
void MainWindow::on_action_Create_triggered()
{
QToolButton * b = new QToolButton;
b->setText("button");
ui->mainToolBar->addWidget(b);
QTreeWidgetItem * t = new QTreeWidgetItem;
t->setText (0, "abc");
ui->treeWidget->addTopLevelItem(t);
QTreeWidgetItem * u = new QTreeWidgetItem;
u->setText (0, "def");
u->setToolTip (0, "nejaky text");
u->setForeground(0, QColor ("red"));
t->addChild(u);
t->setExpanded(true);
}