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