c++andqt
01.09.2011, 17:28
Hy liebe Communtiy!
Ich habe eine Frage bezüglich ein Programms...
Es ist kein Fehler drinnen, aber ich würde gerne eine Speicherfunction einbauen.
Wäre cool wenn ihr mir alles erklären könntet, da ich auch lernen und nicht nur aptippen möchte ....
INFO: Es soll ein kleines Word werden.:cool:
Hier mal der Code:
Header:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QMainWindow>
#include <QTextEdit>
class MyWidget : public QMainWindow{
Q_OBJECT
public:
MyWidget(QMainWindow *parent = 0);
QTextEdit* editor;
public slots:
void openFile();
void newFile();
void changeFont();
void changeColor();
void search();
};
#endif // MYWIDGET_H
Die Main:
#include <QApplication>
#include "mywidget.h"
int main (int argc, char *argv[]){
QApplication app(argc,argv);
MyWidget* window = new MyWidget;
window->show();
return app.exec();
}
Und hier wird alles Implementiert:
#include "mywidget.h"
#include <QApplication>
#include <QMessageBox>
#include <QFont>
#include <QFile>
#include <QMenu>
#include <QMenuBar>
#include <QFileDialog>
#include <QFontDialog>
#include <QColorDialog>
#include <QInputDialog>
//Widgets ableiten
MyWidget::MyWidget(QMainWindow *parent):
QMainWindow(parent)
{
editor = new QTextEdit;
//Menü
QMenu *fileMenu = new QMenu(tr("&Datei"), this);
menuBar()->addMenu(fileMenu);
fileMenu->addAction(
tr("&Neu"), this, SLOT(newFile()),
QKeySequence(tr("Ctrl+N","Datei|Neu")));
fileMenu->addAction(
tr("&Oeffnen"),this, SLOT(openFile()),
QKeySequence(tr("Ctrl+O", "Datei|Oeffnen")));
fileMenu->addAction(
tr ("Be&enden"),qApp , SLOT(quit()),
QKeySequence(tr("Ctrl+E", "Datei|Beenden")));
QMenu *workMenu = new QMenu(
tr("&Bearbeiten"),this);
menuBar()->addMenu(workMenu);
workMenu->addAction(
tr("&Suchen"),this,SLOT(search()),
QKeySequence(tr("Ctrl+S", "Bearbeiten|Suchen")));
QMenu *viewMenu = new QMenu(tr("Ansicht"),this);
menuBar()->addMenu(viewMenu);
viewMenu->addAction(
tr("&Schriftart ändern"),this,SLOT(changeFont()),
QKeySequence(
tr("Ctrl+F","Ansicht|Schriftart ändern"))
);
viewMenu->addAction(
tr("S&chriftfrabe ändern"),this,
SLOT(changeColor()),
QKeySequence(
tr("Ctrl+C","Ansicht|Schriftfarbe ändern")));
setCentralWidget(editor);
setWindowTitle("pcandvideofreak");
}
//Datei öffnen und anzeigen
void MyWidget::openFile(){
QString fileName;
fileName = QFileDialog::getOpenFileName(
this, tr("Datei öffnen"),"",
"C++ Datei (*.cpp *.h);;"
"Text-Datei (*.txt )");
if(!fileName.isEmpty()){
QFile file(fileName);
if (file.open(QFile::ReadOnly | QFile::Text))
editor->setPlainText(file.readAll());
}
}
//Löschen
void MyWidget::newFile(){
editor->clear();
}
//Sschriftart
void MyWidget::changeFont(){
editor->setFont(QFontDialog::getFont(0,editor->font()));
}
//Ändern der Farbe
void MyWidget::changeColor(){
editor->setTextColor(QColorDialog::getColor());
}
//Reihenfolge
void MyWidget::search(){
bool ok;
QString text = QInputDialog::getText(
this, "Suchdialog","Text zur Suche eingeben:",
QLineEdit::Normal,"Suche eingeben", &ok );
if (ok && !text.isEmpty())
editor->find(text);
}
Ich habe eine Frage bezüglich ein Programms...
Es ist kein Fehler drinnen, aber ich würde gerne eine Speicherfunction einbauen.
Wäre cool wenn ihr mir alles erklären könntet, da ich auch lernen und nicht nur aptippen möchte ....
INFO: Es soll ein kleines Word werden.:cool:
Hier mal der Code:
Header:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QMainWindow>
#include <QTextEdit>
class MyWidget : public QMainWindow{
Q_OBJECT
public:
MyWidget(QMainWindow *parent = 0);
QTextEdit* editor;
public slots:
void openFile();
void newFile();
void changeFont();
void changeColor();
void search();
};
#endif // MYWIDGET_H
Die Main:
#include <QApplication>
#include "mywidget.h"
int main (int argc, char *argv[]){
QApplication app(argc,argv);
MyWidget* window = new MyWidget;
window->show();
return app.exec();
}
Und hier wird alles Implementiert:
#include "mywidget.h"
#include <QApplication>
#include <QMessageBox>
#include <QFont>
#include <QFile>
#include <QMenu>
#include <QMenuBar>
#include <QFileDialog>
#include <QFontDialog>
#include <QColorDialog>
#include <QInputDialog>
//Widgets ableiten
MyWidget::MyWidget(QMainWindow *parent):
QMainWindow(parent)
{
editor = new QTextEdit;
//Menü
QMenu *fileMenu = new QMenu(tr("&Datei"), this);
menuBar()->addMenu(fileMenu);
fileMenu->addAction(
tr("&Neu"), this, SLOT(newFile()),
QKeySequence(tr("Ctrl+N","Datei|Neu")));
fileMenu->addAction(
tr("&Oeffnen"),this, SLOT(openFile()),
QKeySequence(tr("Ctrl+O", "Datei|Oeffnen")));
fileMenu->addAction(
tr ("Be&enden"),qApp , SLOT(quit()),
QKeySequence(tr("Ctrl+E", "Datei|Beenden")));
QMenu *workMenu = new QMenu(
tr("&Bearbeiten"),this);
menuBar()->addMenu(workMenu);
workMenu->addAction(
tr("&Suchen"),this,SLOT(search()),
QKeySequence(tr("Ctrl+S", "Bearbeiten|Suchen")));
QMenu *viewMenu = new QMenu(tr("Ansicht"),this);
menuBar()->addMenu(viewMenu);
viewMenu->addAction(
tr("&Schriftart ändern"),this,SLOT(changeFont()),
QKeySequence(
tr("Ctrl+F","Ansicht|Schriftart ändern"))
);
viewMenu->addAction(
tr("S&chriftfrabe ändern"),this,
SLOT(changeColor()),
QKeySequence(
tr("Ctrl+C","Ansicht|Schriftfarbe ändern")));
setCentralWidget(editor);
setWindowTitle("pcandvideofreak");
}
//Datei öffnen und anzeigen
void MyWidget::openFile(){
QString fileName;
fileName = QFileDialog::getOpenFileName(
this, tr("Datei öffnen"),"",
"C++ Datei (*.cpp *.h);;"
"Text-Datei (*.txt )");
if(!fileName.isEmpty()){
QFile file(fileName);
if (file.open(QFile::ReadOnly | QFile::Text))
editor->setPlainText(file.readAll());
}
}
//Löschen
void MyWidget::newFile(){
editor->clear();
}
//Sschriftart
void MyWidget::changeFont(){
editor->setFont(QFontDialog::getFont(0,editor->font()));
}
//Ändern der Farbe
void MyWidget::changeColor(){
editor->setTextColor(QColorDialog::getColor());
}
//Reihenfolge
void MyWidget::search(){
bool ok;
QString text = QInputDialog::getText(
this, "Suchdialog","Text zur Suche eingeben:",
QLineEdit::Normal,"Suche eingeben", &ok );
if (ok && !text.isEmpty())
editor->find(text);
}