QTextBrowser subclass && image paste (bilder einfue

Code-Schnippsel, oder Tipps und Tricks, die einem beim Programmieren mit Qt helfen können.
Antworten
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

QTextBrowser subclass && image paste (bilder einfue

Beitrag von patrik08 »

Wysiwyg html

Kleiner qt4 Frontpage editor....


Drag & Drop bilder und text habe ich hinbekomen .... nun auch cute & past...
Endlich einfuegen vom bilder mit qt im Wysiwyg html Modus ....

Einfach QTextBrowser erweitern... dass man auch im qt designer gebrauchen kann ( promote to custom widged....)

Code: Alles auswählen

#ifndef QVIMEDIT_H
#define QVIMEDIT_H
//
#include <QtDebug>
#include <QDebug> 
#include <QtGui/QTextBrowser>
#include <QTextBrowser>
#include <QMimeData>
#include <QDir>
//
/*  Save file as qvimedit.h  */
/*  incomming class name QVimedit */
//
//
class QVimedit : public QTextBrowser
{
     Q_OBJECT
//
public:	 
    QVimedit( QWidget *parent = 0);
    ~QVimedit();
    bool canInsertFromMimeData ( const QMimeData * source );
    void insertFromMimeData ( const QMimeData * source );
//
protected:
//
private:
    int numerobase;
signals:
     void IncommingHTML();
     void TakeImage( QString nuovaimagine );
public slots:

};
//
#endif // QVIMEDIT_H




Code: Alles auswählen


#include "qvimedit.h"
//
/*  Save file as qvimedit.cpp  */
/*  incomming class name QVimedit */
//
QVimedit::QVimedit( QWidget* parent )
 : QTextBrowser(parent)
{
	///////Load_Connector();
}
QVimedit::~QVimedit()
{
    numerobase = 0;
}

bool QVimedit::canInsertFromMimeData ( const QMimeData * source )
{
    return QTextEdit::canInsertFromMimeData(source);
}
void QVimedit::insertFromMimeData ( const QMimeData * source )
{
    if ( source->hasImage() ) {
         numerobase++;
         const  QString nuovaim = QString("%2/image_%1.jpg").arg(numerobase).arg(QDir::homePath());
         QImage images = qvariant_cast<QImage>(source->imageData());
         bool savesuccess = images.save(nuovaim,"JPG",100);
          if (savesuccess) {
          emit TakeImage(nuovaim);
          }
         return;
    }
    QTextEdit::insertFromMimeData(source);
    if ( source->formats().contains("text/html") ) {
        /* wake up to check image on html to reload QTextDocument && grab image on cache or remote image ..... */
        emit IncommingHTML();
    }
}




Um die bilder zu laden lokal oder remote muss man sich ne class bauen aenlich wie.... https://qt-webdav.svn.sourceforge.net/s ... l_loader.h
.........................
speack português italiano deutsch english castellà qt
Antworten