Mein Problem ist allerdings, wenn ich probeweise eine Datei in den QTextBrowser droppe, wird zwar der Name eingefügt aber der QTextBrowser ist danach nicht mehr richtig benutzbar, weil der Cursor nicht mehr blinkt und sich auch nicht mehr mit den Pfeiltasten bewegen lässt. Text lässt sich allerdings markieren und auch weiterhin eingeben.
Ich sehe im Moment nicht warum da was schiefläuft, kann jemand helfen?
Qt 4.70 Beta 1 unter Linux.
Hier die gesubclasste Klasse des QTextBrowsers:
mybrowser.h
Code: Alles auswählen
#ifndef MYBROWSER_H
#define MYBROWSER_H
#include <QTextBrowser>
class mybrowser : public QTextBrowser
{
Q_OBJECT
public:
explicit mybrowser(QWidget *parent = 0);
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
};
#endif // MYBROWSER_Hmybrowser.cpp
Code: Alles auswählen
#include "mybrowser.h"
#include <QDragEnterEvent>
mybrowser::mybrowser(QWidget *parent) : QTextBrowser(parent){
setAcceptDrops(true);
}
void mybrowser::dragEnterEvent(QDragEnterEvent *event){
if (event->mimeData()->hasFormat("text/uri-list")) event->accept();
else event->ignore();
}
void mybrowser::dropEvent(QDropEvent *event){
QList<QUrl> urls = event->mimeData()->urls();
if (urls.isEmpty()) {
event->ignore();
return;
}
for (int i=0; i<urls.count(); i++){
QString file = urls[i].toLocalFile();
this->append(file);
}
event->accept();
}