QT实现文本编辑器
2014-04-16 11:17
169 查看
最近在学QT,刚刚入门。实现了一个一个简单的文本编辑器。主要的功能包括打开文本文件,修改文本文件和保存文本文件。
源代码:
mainwindow.h文件
mainwindow.cpp文件
main.cpp文件
源代码:
mainwindow.h文件
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "QMainWindow" #include "qtextedit.h" class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget * parent = 0); ~MainWindow(); private: void openFile(); void saveFile(); QAction * openAction; QAction * saveAction; QTextEdit * textEdit; }; #endif
mainwindow.cpp文件
#include "QAction" #include "QMenuBar" #include "QMessageBox" #include "QStatusBar" #include "QToolBar" #include "qfiledialog.h" #include "qtextstream.h" #include "qmessagebox.h" #include "mainwindow.h" MainWindow::MainWindow(QWidget * parent):QMainWindow(parent) { setWindowTitle(tr("Main Window")); openAction = new QAction(QIcon(":/image/test"),tr("&Open"),this); openAction->setShortcuts(QKeySequence::Open);//设置快捷键 openAction->setStatusTip(tr("Open an exist file")); saveAction = new QAction(QIcon(":/image/test"),tr("&save"),this); saveAction->setShortcut(QKeySequence::Save); saveAction->setStatusTip(tr("Save a new file")); QMenu * file = menuBar()->addMenu(tr("&File")); file->addAction(openAction); file->addAction(saveAction); QToolBar * toolBar = addToolBar(tr("&File")); toolBar->addAction(openAction); toolBar->addAction(saveAction); textEdit = new QTextEdit(this); setCentralWidget(textEdit); connect(openAction,&QAction::triggered,this,&MainWindow::openFile); connect(saveAction,&QAction::triggered,this,&MainWindow::saveFile); } MainWindow::~MainWindow() { } void MainWindow::openFile() { QString path = QFileDialog::getOpenFileName(this,tr("Open File"),".",tr("Text Files(*.txt)")); if(!path.isEmpty()) { QFile file(path); if(!file.open(QIODevice::ReadOnly|QIODevice::Text))//以只读方式和文本方式打开这个文件 { QMessageBox::warning(this,tr("Read File"),tr("can't open file")); return; } QTextStream in(&file); textEdit->setText(in.readAll()); file.close(); } else { QMessageBox::warning(this,tr("Path"),tr("you didn't select anything")); } } void MainWindow::saveFile() { QString path = QFileDialog::getSaveFileName(this,tr("Save File"),".",tr("Text File(*.txt)")); if(!path.isEmpty()) { QFile file(path); if(!file.open(QIODevice::WriteOnly|QIODevice::Text))//已只写方式和文本方式打开这个文件 { QMessageBox::warning(this,tr("Save File"),tr("can't save file")); return; } QTextStream out(&file); out<<textEdit->toPlainText(); file.close(); } else { QMessageBox::warning(this,tr("Path"),tr("you didn't select anything")); } }
main.cpp文件
#include "texteditor.h" #include <QtWidgets/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow win; win.show(); return a.exec(); }
相关文章推荐
- Qt图片显示效率的比较
- 根据qt工程pro生成工程
- QT 对话框数据传递
- qt 事件机制
- Qt 将一个Widget(子)从某个Widget(父)中移除的方法
- ubuntu下qt连接sqlserver2008
- QTP和WinRunner区别
- qt学习_自定义信号与槽
- Qwt5.2.3 + VS2008/VS2010+Qt4.8.5编译
- QT的事件监控
- QT Symbian .pro文件解析
- Qt在VS2010中使用
- Qt入门-文本框类QLineEdit和QTextEdit
- Qt中 QString 和int, char等的“相互”转换
- 在Qt Widget中使用QPainter之外的引擎进行绘图
- Qt学习之路(23): 自定义事件
- Qt学习之路(21): event()
- 【PyQt4实例11】各种Graphics Items
- Linux下移植pjsip,使用QT开发
- QT中复合按钮中下拉菜单的实现