zoukankan      html  css  js  c++  java
  • Qt实现一个简单的TextEditor

    使用QT实现简单的TextEditor:

    首先在窗口添加部件TextEditor,并设置中文字符

    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
    
        setCentralWidget(ui->textEdit);
    }

    具体的各种函数实现:

    // 用于在打开新建新文件时判断上一个正在编辑的文件是否被修改,并提示编辑者是否需要保存被修改后的内容。
    void MainWindow::AdvanceEditing() {
    if(ui->textEdit->document()->isModified()){ QMessageBox::StandardButton reply; reply = QMessageBox::information(this, "Yes/Not", "文件已被修改,是否要保存修改后的文件?", QMessageBox::Yes | QMessageBox::No); if(reply == QMessageBox::Yes){ Save(); // 如果需要保存,调用Save函数 } } } void MainWindow::New() // 创建新文件 { AdvanceEditing(); ui->textEdit->clear(); // 清屏 fileName = QFileDialog::getSaveFileName(this, "创建文件", "", tr("File(*.txt *.cpp *.h *.html *.htm)")); Save(); // 将新建的文件保存 } void MainWindow::Open() // 打开新文件 { AdvanceEditing(); fileName = QFileDialog::getOpenFileName(this, tr("打开文本文件"), "", tr("File(*.txt *.cpp *.h *.html *.htm)")); QFile myFile(fileName); if(!myFile.open(QIODevice::ReadOnly | QIODevice::Text)){ QMessageBox::warning(this, "警告", "打开文件失败!"); return; } QTextStream in(&myFile); QString m_Text = in.readAll(); ui->textEdit->clear(); if(fileName.endsWith("htm") || fileName.endsWith("html")){ ui->textEdit->setHtml(m_Text); } else{ ui->textEdit->setPlainText(m_Text); } ui->statusBar->showMessage("文件名:"+fileName); } void MainWindow::Save() // 保存文件 { QFile myFile(fileName); if(!myFile.open(QIODevice::WriteOnly | QIODevice::Text)){ QMessageBox::warning(this, "警告", "保存文件失败!"); return; } QTextStream out(&myFile); QString m_Text = ui->textEdit->toPlainText(); out << m_Text; // 将获取的textEdit中的内容写入文件 myFile.close(); } void MainWindow::on_actionNew_triggered() { New(); } void MainWindow::on_actionOpen_triggered() { Open(); } void MainWindow::on_actionSave_triggered() { Save(); } void MainWindow::on_actionQuit_triggered() { close(); }
  • 相关阅读:
    2.NET Core设定数据库种子
    1.ASP.NET Core 中向 Razor Pages 应用添加模型
    获取文件夹目录下的文件信息
    dataGridView读写文本
    C# winform 启动外部程序
    netcore访问本地磁盘
    c#利用定时器自动备份数据库(mysql)
    c#mysql数据库备份还原
    Linux之旅(二)
    Linux之旅
  • 原文地址:https://www.cnblogs.com/lnlin/p/7798987.html
Copyright © 2011-2022 走看看