⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editor.cpp

📁 Qt4的一些例子
💻 CPP
字号:
#include <QtGui>#include "editor.h"Editor::Editor(QWidget *parent)    : QTextEdit(parent){    action = new QAction(this);    action->setCheckable(true);    connect(action, SIGNAL(triggered()), this, SLOT(show()));    connect(action, SIGNAL(triggered()), this, SLOT(setFocus()));    isUntitled = true;    fileFilters = tr("Text files (*.txt)\n"                     "All files (*)");    connect(document(), SIGNAL(contentsChanged()),            this, SLOT(documentWasModified()));    setWindowIcon(QPixmap(":/images/document.png"));    setAttribute(Qt::WA_DeleteOnClose);}void Editor::newFile(){    static int documentNumber = 1;    curFile = tr("document%1.txt").arg(documentNumber);    setWindowTitle(curFile + "[*]");    action->setText(curFile);    isUntitled = true;    ++documentNumber;}bool Editor::open(){    QString fileName =            QFileDialog::getOpenFileName(this, tr("Open"), ".",                                         fileFilters);    if (fileName.isEmpty())        return false;    return openFile(fileName);}bool Editor::openFile(const QString &fileName){    if (readFile(fileName)) {        setCurrentFile(fileName);        return true;    } else {        return false;    }}bool Editor::save(){    if (isUntitled) {        return saveAs();    } else {        return saveFile(curFile);    }}bool Editor::saveAs(){    QString fileName =            QFileDialog::getSaveFileName(this, tr("Save As"), curFile,                                         fileFilters);    if (fileName.isEmpty())        return false;    return saveFile(fileName);}QSize Editor::sizeHint() const{    return QSize(72 * fontMetrics().width('x'),                 25 * fontMetrics().lineSpacing());}void Editor::closeEvent(QCloseEvent *event){    if (okToContinue()) {        event->accept();    } else {        event->ignore();    }}void Editor::documentWasModified(){    setWindowModified(true);}bool Editor::okToContinue(){    if (document()->isModified()) {        int r = QMessageBox::warning(this, tr("MDI Editor"),                        tr("File %1 has been modified.\n"                           "Do you want to save your changes?")                        .arg(strippedName(curFile)),                        QMessageBox::Yes | QMessageBox::Default,                        QMessageBox::No,                        QMessageBox::Cancel | QMessageBox::Escape);        if (r == QMessageBox::Yes) {            return save();        } else if (r == QMessageBox::Cancel) {            return false;        }    }    return true;}bool Editor::saveFile(const QString &fileName){    if (writeFile(fileName)) {        setCurrentFile(fileName);        return true;    } else {        return false;    }}void Editor::setCurrentFile(const QString &fileName){    curFile = fileName;    isUntitled = false;    action->setText(strippedName(curFile));    document()->setModified(false);    setWindowTitle(strippedName(curFile) + "[*]");    setWindowModified(false);}bool Editor::readFile(const QString &fileName){    QFile file(fileName);    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {        QMessageBox::warning(this, tr("MDI Editor"),                             tr("Cannot read file %1:\n%2.")                             .arg(file.fileName())                             .arg(file.errorString()));        return false;    }    QTextStream in(&file);    QApplication::setOverrideCursor(Qt::WaitCursor);    setPlainText(in.readAll());    QApplication::restoreOverrideCursor();    return true;}bool Editor::writeFile(const QString &fileName){    QFile file(fileName);    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {        QMessageBox::warning(this, tr("MDI Editor"),                             tr("Cannot write file %1:\n%2.")                             .arg(file.fileName())                             .arg(file.errorString()));        return false;    }    QTextStream out(&file);    QApplication::setOverrideCursor(Qt::WaitCursor);    out << document()->toPlainText();    QApplication::restoreOverrideCursor();    return true;}QString Editor::strippedName(const QString &fullFileName){    return QFileInfo(fullFileName).fileName();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -