[gelöst] - Drag N Drop - einer externen Datei

Alles rund um die Programmierung mit Qt
Antworten
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

[gelöst] - Drag N Drop - einer externen Datei

Beitrag von Hulk2442 »

Hi @ all
Ich wollte ein kleines Programm schreiben welches mir bei der Arbeit hilft und vor allem die „Drag & Drop“ Funktion becherst.

Ich kenne das von Photoshop oder Word wo ich zuerst das Programm öffnen kann und dann vom Explorer oder vom Desktop aus mir eine Datei oder ein Bild in das Programm hineinziehen kann.

Jedoch egal was ich mache jedes mal wenn ich versuche etwas hineinzuziehen bekomme ich so nur eine Blockier-ICON (anstele des Mauszeigers) und es passiert nichts.

Weis jemand eine Lösung wie das realisieren könnte?

main.cc

Code: Alles auswählen

#include <QApplication>
#include "CWindow.hh"
int main( int argc, char * argv[] )
{
    QApplication app(argc, argv);
    CWindow *pWin = new CWindow;
    pWin->setMinimumSize(640, 480);
    pWin->show();
    return app.exec();
}
CWindow.cc

Code: Alles auswählen

#include "CWindow.hh"

//============================================================================== construktor
CWindow::CWindow():
strText("Text")
{
    this->setAcceptDrops(true);
    create();
}

//============================================================================== destruktor
CWindow::~CWindow()
{
}

//============================================================================== create
void CWindow::create()
{
    pVLayout = new QVBoxLayout;
    pLabel = new QLabel(strText);
    pLabel->setAcceptDrops(true);
    pVLayout->addWidget(pLabel);
    this->setLayout(pVLayout);
}

//============================================================================== drag Enter Event
//void CWindow::dragEnterEvent(QDragEnterEvent *event)
//{
//}

//============================================================================== drag Enter Event
void CWindow::dropEvent(QDropEvent *pEvent)
{
    pLabel->setText("Drop drop droP");
}
CWindow.hh

Code: Alles auswählen

#ifndef CWINDOW_HH
#define CWINDOW_HH
#include <QWidget>
#include <QLabel>
#include <QString>
#include <QVBoxLayout>
#include <QDragEnterEvent>
#include <QDropEvent>
class CWindow : public QWidget
{
    public:
        CWindow();
        ~CWindow();

        // void dragEnterEvent(QDragEnterEvent *pEvent);
        void dropEvent(QDropEvent *pEvent);
    private:
        QVBoxLayout *pVLayout;
        QLabel *pLabel;
        QString strText;
        void create();
};
#endif // CWINDOW_HH


TIA
Zuletzt geändert von Hulk2442 am 8. November 2009 14:19, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Muss das Drag-Enter-Event nicht akzeptiert werden?
Hulk2442
Beiträge: 115
Registriert: 10. Januar 2007 13:44

Beitrag von Hulk2442 »

OK
Habe ein Beispiel gefunden wo genau das behandelt wird.
http://doc.trolltech.com/4.5/draganddrop-dropsite.html
Antworten