qt notepad design

QtNotepadDemo.pro
#-------------------------------------------------
#
# Project created by QtCreator 2016-05-26T17:28:11
#
#-------------------------------------------------
QT += core gui printsupport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = QtNotepadDemo
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += \
resource.qrc
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_actionNew_triggered();
void on_actionCopy_triggered();
void on_actionOpen_triggered();
void on_actionSave_triggered();
void on_actionSave_as_triggered();
void on_actionCut_triggered();
void on_actionPaste_triggered();
void on_actionRedo_triggered();
void on_actionUndo_triggered();
void on_actionAbout_Notepad_triggered();
void on_actionFont_triggered();
void on_actionColor_triggered();
void on_actionBackground_Color_triggered();
void on_actionBackgroung_Color_Edit_Text_triggered();
void on_actionPrint_triggered();
private:
Ui::MainWindow *ui;
QString file_path_;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QFileDialog>
#include <QTextStream>
#include <QMessageBox>
#include <QFontDialog>
#include <QFont>
#include <QColorDialog>
#include <QColor>
#include <QPrinter>
#include <QPrintDialog>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setCentralWidget(ui->textEdit);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionNew_triggered()
{
file_path_ = "";
ui->textEdit->setText("");
}
void MainWindow::on_actionCopy_triggered()
{
ui->textEdit->copy();
}
void MainWindow::on_actionOpen_triggered()
{
QString file_name = QFileDialog::getOpenFileName(this,"Open the file");
QFile file(file_name);
file_path_ = file_name;
if(!file.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this,"..","file not open");
return;
}
QTextStream in(&file);
QString text = in.readAll();
ui->textEdit->setText(text);
file.close();
}
void MainWindow::on_actionSave_triggered()
{
QFile file(file_path_);
if(!file.open(QFile::WriteOnly | QFile::Text)) {
QMessageBox::warning(this,"..","file not open");
return;
}
QTextStream out(&file);
QString text = ui->textEdit->toPlainText();
out << text;
file.flush();
file.close();
}
void MainWindow::on_actionSave_as_triggered()
{
QString file_name = QFileDialog::getSaveFileName(this,"Open the file");
QFile file(file_name);
file_path_ = file_name;
if(!file.open(QFile::WriteOnly | QFile::Text)) {
QMessageBox::warning(this,"..","file not open");
return;
}
QTextStream out(&file);
QString text = ui->textEdit->toPlainText();
out << text;
file.flush();
file.close();
}
void MainWindow::on_actionCut_triggered()
{
ui->textEdit->cut();
}
void MainWindow::on_actionPaste_triggered()
{
ui->textEdit->paste();
}
void MainWindow::on_actionRedo_triggered()
{
ui->textEdit->redo();
}
void MainWindow::on_actionUndo_triggered()
{
ui->textEdit->undo();
}
void MainWindow::on_actionAbout_Notepad_triggered()
{
QString about_text;
about_text = "Auther : somebody\n";
about_text += "Date : 12/05/2016\n";
about_text += "(C) Notepad (R)\n";
QMessageBox::about(this,"About Notepad",about_text);
}
void MainWindow::on_actionFont_triggered()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if (ok) {
ui->textEdit->setFont(font);
} else return;
}
void MainWindow::on_actionColor_triggered()
{
QColor color = QColorDialog::getColor(Qt::white,this,"Choose Color");
if(color.isValid()) {
ui->textEdit->setTextColor(color);
}
}
void MainWindow::on_actionBackground_Color_triggered()
{
QColor color = QColorDialog::getColor(Qt::white,this,"Choose Color");
if(color.isValid()) {
ui->textEdit->setTextBackgroundColor(color);
}
}
void MainWindow::on_actionBackgroung_Color_Edit_Text_triggered()
{
QColor color = QColorDialog::getColor(Qt::white,this,"Choose Color");
if(color.isValid()) {
ui->textEdit->setPalette(QPalette(color));
}
}
void MainWindow::on_actionPrint_triggered()
{
QPrinter printer;
printer.setPrinterName("desierd printer name");
QPrintDialog dialog(&printer,this);
if(dialog.exec() == QDialog::Rejected) return;
ui->textEdit->print(&printer);
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>513</width>
<height>361</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTextEdit" name="textEdit"/>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>513</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
<addaction name="separator"/>
<addaction name="actionSave"/>
<addaction name="actionSave_as"/>
<addaction name="separator"/>
<addaction name="actionPrint"/>
</widget>
<widget class="QMenu" name="menuEdit">
<property name="title">
<string>Edit</string>
</property>
<addaction name="actionCut"/>
<addaction name="actionCopy"/>
<addaction name="actionPaste"/>
<addaction name="separator"/>
<addaction name="actionRedo"/>
<addaction name="actionUndo"/>
<addaction name="separator"/>
<addaction name="actionFont"/>
<addaction name="actionColor"/>
<addaction name="actionBackground_Color"/>
<addaction name="actionBackgroung_Color_Edit_Text"/>
</widget>
<widget class="QMenu" name="menuAbout">
<property name="title">
<string>about</string>
</property>
<addaction name="actionAbout_Notepad"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuEdit"/>
<addaction name="menuAbout"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionNew"/>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
<addaction name="actionSave_as"/>
<addaction name="separator"/>
<addaction name="actionCut"/>
<addaction name="actionCopy"/>
<addaction name="actionPaste"/>
<addaction name="separator"/>
<addaction name="actionRedo"/>
<addaction name="actionUndo"/>
<addaction name="separator"/>
<addaction name="actionAbout_Notepad"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionNew">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/new.png</normaloff>:/rec/img/new.png</iconset>
</property>
<property name="text">
<string>New</string>
</property>
</action>
<action name="actionOpen">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/open.png</normaloff>:/rec/img/open.png</iconset>
</property>
<property name="text">
<string>Open</string>
</property>
</action>
<action name="actionSave">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/save.png</normaloff>:/rec/img/save.png</iconset>
</property>
<property name="text">
<string>Save</string>
</property>
</action>
<action name="actionSave_as">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/save-as.png</normaloff>:/rec/img/save-as.png</iconset>
</property>
<property name="text">
<string>Save as</string>
</property>
</action>
<action name="actionCut">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/cut.png</normaloff>:/rec/img/cut.png</iconset>
</property>
<property name="text">
<string>Cut</string>
</property>
</action>
<action name="actionCopy">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/copy.png</normaloff>:/rec/img/copy.png</iconset>
</property>
<property name="text">
<string>Copy</string>
</property>
</action>
<action name="actionPaste">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/paste.png</normaloff>:/rec/img/paste.png</iconset>
</property>
<property name="text">
<string>Paste</string>
</property>
</action>
<action name="actionRedo">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/redo.png</normaloff>:/rec/img/redo.png</iconset>
</property>
<property name="text">
<string>Redo</string>
</property>
</action>
<action name="actionUndo">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/undo.png</normaloff>:/rec/img/undo.png</iconset>
</property>
<property name="text">
<string>Undo</string>
</property>
</action>
<action name="actionAbout_Notepad">
<property name="icon">
<iconset resource="resource.qrc">
<normaloff>:/rec/img/about.png</normaloff>:/rec/img/about.png</iconset>
</property>
<property name="text">
<string>About Notepad</string>
</property>
</action>
<action name="actionFont">
<property name="text">
<string>Font</string>
</property>
</action>
<action name="actionColor">
<property name="text">
<string>Color</string>
</property>
</action>
<action name="actionBackground_Color">
<property name="text">
<string>Background Color</string>
</property>
</action>
<action name="actionBackgroung_Color_Edit_Text">
<property name="text">
<string>Backgroung Color Edit Text</string>
</property>
</action>
<action name="actionPrint">
<property name="text">
<string>Print</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="resource.qrc"/>
</resources>
<connections/>
</ui>
resource.qrc
<RCC>
<qresource prefix="/rec">
<file>img/about.png</file>
<file>img/copy.png</file>
<file>img/cut.png</file>
<file>img/new.png</file>
<file>img/open.png</file>
<file>img/paste.png</file>
<file>img/redo.png</file>
<file>img/save.png</file>
<file>img/save-as.png</file>
<file>img/undo.png</file>
</qresource>
</RCC>
output


Leave a Reply