Главная страница
Простейший текстовый редактор. Программная платформа Windows XP SP3.
Язык С++. Библиотека классов Qt 3.3.8
(неофициальная версия для Windows, свободно есть в интернете).
Приложение с графическим интерфейсом.
Программа состоит из трех файлов с кодом editor2.cpp, editor2.h, main.cpp
и трех графических файлов fileopen.png, filesave.png, filenew.png,
которые являются кнопками панели инструментов. Файлы fileopen.png, filesave.png, filenew.png
следует записать в папку "images", ниже размещены эти файлы для сохранения:
Программная платформа Win32 - это один из вариантов.
Библиотека Qt 3.3.8 работает на дистрибутивах Linux (Ubuntu, Debian, Fedora и других).
Файл "editor2.cpp"
#include "editor2.h"
#include <qmainwindow.h>
#include <qfiledialog.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qtextedit.h>
#include <qstring.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qtoolbar.h>
#include <qtoolbutton.h>
#include <qiconset.h>
#include <qpixmap.h>
QEditor::QEditor():QMainWindow(0,0,WType_TopLevel)
{
setCaption("Текстовый редактор");
setGeometry(100,100,700,500);
QMenuBar * mb1=QMainWindow::menuBar();
QPopupMenu *pm1=new QPopupMenu();
pm1->insertItem("Открыть",this,SLOT(openfile()),Key_F1);
pm1->insertItem("Сохранить",this,SLOT(savefile()),Key_F2);
pm1->insertItem("Новый",this,SLOT(closefile()),Key_F3);
mb1->insertItem("Операции",pm1);
QToolBar *tb1=new QToolBar(this,0);
QToolButton *tbopen=new QToolButton(tb1,0);
tbopen->setPixmap( QPixmap::fromMimeSource( "fileopen.png" ) );
QObject::connect(tbopen,SIGNAL(clicked()),this,SLOT(openfile()));
QToolButton *tbsave=new QToolButton(tb1,0);
tbsave->setPixmap( QPixmap::fromMimeSource( "filesave.png" ) );
QObject::connect(tbsave,SIGNAL(clicked()),this,SLOT(savefile()));
QToolButton *tbclose=new QToolButton(tb1,0);
tbclose->setPixmap( QPixmap::fromMimeSource( "filenew.png" ) );
QObject::connect(tbclose,SIGNAL(clicked()),this,SLOT(closefile()));
te1=new QTextEdit(this);
setCentralWidget(te1);
}
void QEditor::openfile()
{
QFileDialog *fd=new QFileDialog(0,0,TRUE);
fd->setGeometry(100,100,400,400);
fd->setCaption("Выберите файл");
fd->exec();
QString filename=fd->selectedFile();
QFile fa1(filename);
fa1.open(IO_ReadOnly);
QTextStream ts1(&fa1);
te1->setText(ts1.read());
}
void QEditor::savefile()
{
QString fn = QFileDialog::getSaveFileName( QString::null, QString::null,0,
"fd2","Выберите файл или введите имя нового файла");
QFile fa2( fn );
fa2.open( IO_WriteOnly );
QTextStream ts2( &fa2 );
ts2 << te1->text();
}
void QEditor::closefile()
{
te1->clear();
}
Файл "editor2.h"
#ifndef QEDITOR_H
#define QEDITOR_H
#include <qmainwindow.h>
#include <qtextedit.h>
class QEditor : public QMainWindow
{
Q_OBJECT
public:
QEditor();
public slots:
void openfile();
void closefile();
void savefile();
private:
QTextEdit *te1;
};
#endif
Файл "main.cpp"
#include <qapplication.h>
#include "editor2.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
QEditor *mw1 = new QEditor();
a.setMainWidget(mw1);
a.connect( &a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()) );
mw1->show();
return a.exec();
}
Главная страница