下面代码包含了打开文件,拖拽文件,插入框架,文本块,表格,列表,图片,将所选内容变成斜体,添加下划线以及从后往前查找内容并高亮的功能。废话不多说,代码贴上:
头文件:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QLabel>
#include<QFile>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QStatusBar *sBar;
QLabel *label;
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
源文件:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QToolBar>
#include<QDialog>
#include<QFileDialog>
#include<QMimeData>
#include<QDropEvent>
#include<QDebug>
#include<QMessageBox>
#include<QStatusBar>
#include<QFrame>
#include<QTextFrame>
#include<QFormLayout>
#include<QHBoxLayout>
#include<QVBoxLayout>
#include<QLineEdit>
#include<QGridLayout>
#include<QPushButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QToolBar *toolbar=addToolBar("toolbar");
toolbar->addAction(ui->action_O);
ui->textEdit->setAcceptDrops(false);
this->setAcceptDrops(true);
sBar=statusBar();
label=new QLabel(this);
sBar->addWidget(label);
connect(ui->action_O,&QAction::triggered,
[=]()mutable
{
QString path=QFileDialog::getOpenFileName(this,
"open",
"/home",
"text files(*.txt *.c *.cpp *.h)"
);
QFile file(path);
QFileInfo fi=QFileInfo(path);
if(!file.open(QIODevice::ReadOnly|QIODevice::Text))
{
QMessageBox::warning(this,"ERROR",QString("read file error:%1").arg(file.errorString()));
}
else
{