Seite 1 von 1

Den reiner text bekommen von QTextEdit

Verfasst: 18. April 2006 19:09
von patrik08
Den reiner text bekommen von QTextEdit

ich formatieren anfang den text so...

Code: Alles auswählen

void Gui_Front::SetupXMLHighlighter()
{
    /* class Highlighter   */
    QFont font;
    font.setFamily("Courier");
    font.setFixedPitch(true);
    font.setPointSize(10);

    xml_area->setFont(font);
    result_area->setFont(font);
    xsl_area->setFont(font);
    highxml = new Highlighter(xml_area->document());
    highxsl = new Highlighter(xsl_area->document());
    highresult = new Highlighter(result_area->document());
}
dann moechte ich speichern.... aber xml_area->document() kommt nichts.... xml_area->document()->setPlainText() auch nichts..

compiler sagt..

gui_front.cpp:264: error: conversion from `QTextDocument*' to non-scalar type `QString' requested

Code: Alles auswählen

    QString actualfile =GetCurrentFile();
    
                        int tabpos = tabWidget->currentIndex();
                        switch(tabpos)
                        {
                        case 0:
                            if (IsNetFile(actualfile)) {
                               QString newfilename = filedialog->getSaveFileName(this,tr("Save as.. "), "", "textplain (*.xml)");
                                       if (!newfilename.contains(".xml", Qt::CaseInsensitive)) { 
                                       newfilename = newfilename+".xml";
                                       }
                                       /* xml_area->document()->setPlainText() */
                                file_put_contents( newfilename , xml_area->document()  );
                                xml_edit_line->setText ( newfilename );
                               } 
                            if (!IsNetFile(actualfile) and actualfile.size() > 1) {
                                file_put_contents( actualfile , xml_area->document() ); 
                            }
                        break;
QTextEdit ist rein text...

Code: Alles auswählen

xml_area->insertPlainText(QString( "%1" ).arg( file_get_contents( xmlcurrent ) ));
                        xml_area->toPlainText();

wie bekomme ich den neuen text....

Verfasst: 18. April 2006 19:24
von Christian81

Verfasst: 18. April 2006 19:42
von Christian81

Verfasst: 18. April 2006 19:45
von patrik08
Super ... und ins Unicode ASCI... (xml)

zuerst ins array und dann wieder qstring so wie
char zu qstring oder?

etwas so oder?

Code: Alles auswählen

     /*  QLocale iso?  */
    QByteArray encodedString = xml_area->document()->toPlainText();
    QTextCodec *codec = QTextCodec::codecForName("ISO 8859-1");
    QString string = codec->toUnicode(encodedString);


Verfasst: 18. April 2006 21:16
von Christian81
Was soll das? Schau doch einfach was http://doc.trolltech.com/4.1/qstring.html dir bietet... dort gibts toLatin1(), toAscii(), utf16() und mehr.

Verfasst: 18. April 2006 21:58
von patrik08
bei linux & mac gibt das locale nicht nur die sprache und das land sondern auch wie das os text bearbeitet ist.... ob utf8 iso ecc... oder ecc...

wen man von utf8 nochmals zu ut8 convertiert gibt es ein zeichen salat...
kann ich in sicher sein das qt immer alle texte im utf8 bearbeitet!.

bei nicht qt applicationen mache ich ansonsten immer ein regular expression
(QRegExp) und http://doc.trolltech.com/4.1/qlocale.html qlocale gibt leider keine info...

Verfasst: 18. April 2006 23:07
von Christian81
patrik08 hat geschrieben: wen man von utf8 nochmals zu ut8 convertiert gibt es ein zeichen salat...
kann ich in sicher sein das qt immer alle texte im utf8 bearbeitet!.
Es kann dir egal sein wie Qt intern seine Daten speichert solange Du sie Qt ordentlich übergibst. Also ist deine Frage irrelevant.