Registriert: Mi 8. Jun 2011, 15:57 Beiträge: 723 Wohnort: 127.0.0.1
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;}
Registriert: Mi 8. Jun 2011, 15:57 Beiträge: 723 Wohnort: 127.0.0.1
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 !
_________________ nexusfail und Miss Rabiit sind die besten :D
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... -.-
Registriert: Mi 8. Jun 2011, 15:57 Beiträge: 723 Wohnort: 127.0.0.1
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 !
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.