Ich hab mir mal auf die schnelle einen Texteditor in C++ gemacht Kann folgendes : I/O mit FileDialog HTML in einer WebView anzeigen hab ich von nexi :D Text Zoom Auto Save
Bin noch nicht ganz fertig .... eine Syntax Highlight ist auch geplant ....
main.cpp
Spoiler :
Code:
#include "mainwindowimpl.h" // ------------------ // V0.1 2012 QT 4.6.2 // ------------------ unsigned char nSettings_0 = 0x00; /* * 1 -> Text changed * * 2 -> Web View * * // Save the Auto save intervall for the Auto save State Machine * 3 -> State Machine -> Auto save Bit 1 * 4 -> State Machine -> Auto save Bit 2 * 5 -> State Machine -> Auto save Bit 3 * * 6 -> / * 7 -> / * 8 -> / */ unsigned char nAutoSave = 0; QString StrSave = "";
// start MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f) : QMainWindow(parent, f) {setupUi(this);SHOW_MainEdit MainEdit->setTextFormat(Qt::PlainText);MainEdit->setText(TEXT_EXAMPLE);} //closeevent void MainWindowImpl::closeEvent(QCloseEvent *event){ if(nSettings_0&1){ QMessageBox msgBox; msgBox.setText("Save ?"); msgBox.setIcon(QMessageBox::Information); msgBox.setInformativeText("Do you want to save the file ?"); msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Ok); int ret = msgBox.exec(); switch (ret) { case QMessageBox::Save:SAVE_Main_Edit if(nSettings_0&1){event->ignore();}break; case QMessageBox::Discard:event->accept();break; case QMessageBox::Cancel:event->ignore();break; default:event->ignore();break; } }else{event->accept();} } //open void MainWindowImpl::on_action_ffnen_activated(){ QString filename = QFileDialog::getOpenFileName( this, tr("Open Document"), QDir::currentPath(),tr("Document files All files (*)") ); if(!filename.isNull()){ StrSave = filename.toAscii(); QFile file(filename.toAscii()); file.open(QIODevice::ReadOnly | QIODevice::Text); MainEdit->setText(file.readAll()); file.close(); } } //save void MainWindowImpl::on_actionSpeichern_activated(){ bool B_Save = 0;unsigned char nAbort=0; do{ if(StrSave == ""){ QString filename = QFileDialog::getSaveFileName( this, tr("Save Document"),QDir::currentPath(), tr("Document files All files (*)") ); if(filename.toAscii() != "")StrSave = filename.toAscii();else nAbort=10; }else{B_Save = 1;} if(B_Save == 0){ QMessageBox msgBox; msgBox.setText("Save failed !"); msgBox.setIcon(QMessageBox::Information); msgBox.setInformativeText("Do you want to retry save the file ?"); msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Ok); int ret = msgBox.exec(); if(ret==QMessageBox::Cancel) {nSettings_0 &= 254;/*11111110*/nAbort=10;} } nAbort++;B_Save = 1; }while(!Save(StrSave,MainEdit->text())||nAbort<=9); } // save as227 void MainWindowImpl::on_actionSpeichern_unter_activated() {StrSave == "";SAVE_Main_Edit } //text changed void MainWindowImpl::on_MainEdit_textChanged(){ if(MainEdit->text() != "")nSettings_0 |= 1; nAutoSave++; if(AutoSave((nSettings_0&28),nAutoSave)) {SAVE_Main_Edit nAutoSave=0;}
Karv hat geschrieben:<textarea name = 'Texteditor' cols = '500' rows = '250'>
WAS ? Ich glaube du verwechselst da was , das eine ist C++ das andere ist HTML , zur Lösung der Problem brauche ich eine Syntax Highlight Funktion .... oder willst du wissen ob der Befehl geht ? ... Ja tut er !
Das ist ein Textfeld... da kann man was reinschreiben... ergo n "editor" oder n "vi" - speichern is natürlich ne andere Sache - das war übrigens trolling... -.-
Karv hat geschrieben:Das ist ein Textfeld... da kann man was reinschreiben... ergo n "editor" oder n "vi" - speichern is natürlich ne andere Sache - das war übrigens trolling... -.-
Danke für deinen "geistreichen" Beitrag , er war ganz deinem Wissensstand entsprechend - das war übrigens Ironie mit trolling !