QT简易记事本

此博客可能围绕QT记事本展开,虽内容缺失,但可推测会涉及QT记事本的相关信息技术内容,如功能、开发等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "notepad.h"
#include "ui_notepad.h"
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QDebug>
NotePad::NotePad(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::NotePad)
{
    ui->setupUi(this);

    connect(ui->newAction, &QAction::triggered, this, &NotePad::newFileActionSlot );
    connect(ui->openAction, &QAction::triggered, this, &NotePad::openFileActionSlot );
    connect(ui->saveAction, &QAction::triggered, this, &NotePad::saveFileActionSlot );
}

NotePad::~NotePad()
{
    delete ui;
}


void NotePad::newFileActionSlot(){
    ui->textEdit->clear();
    ui->textEdit->setWindowTitle("new file");
}
void NotePad::openFileActionSlot(){
    // QFileDialog::getOpenFileName用于打开一个框,选择文件
    // 返回值是对应的文件名称
    // QCoreApplication::applicationFilePath获取当前应用目录
    QString fileName = QFileDialog::getOpenFileName(this, "打开一个文件 ", QCoreApplication::applicationFilePath(), "*.cpp");
    if (fileName.isEmpty()) {
        QMessageBox::warning(this, "警告 ", "请打开一个文件 ");
    }
    else {
        QFile file(fileName);
        file.open(QIODevice::ReadOnly);
        QByteArray ba = file.readAll();

        ui->textEdit->setText(QString(ba));
        file.close();
    }
}
void NotePad::saveFileActionSlot(){

    QString fileName = QFileDialog::getSaveFileName(this, "保存一个文件 ", QCoreApplication::applicationFilePath());
    if (fileName.isEmpty()) {
        QMessageBox::warning(this, "警告 ", "请保存一个文件 ");
    }
    else {
        // toPlainText获取textEdit中的文本
        QString text = ui->textEdit->toPlainText();
        QFile file(fileName);

        // 文件的读取和写入都是QByteArray对象
        // QByteArray转QString ,QString有对应构造函数
        // QString转QByteArray, QByteArray对象有append方法
        file.open(QIODevice::WriteOnly);
        QByteArray ba;
        ba.append(text);
        file.write(ba) ;
        file.close();
    }
}


void NotePad::keyPressEvent(QKeyEvent* event){
    // 使用快捷键实现文件的保存
    if (event->modifiers() == Qt::ControlModifier && event->key() == Qt::Key_S){
        saveFileActionSlot();
    }
}

void NotePad::mousePressEvent(QMouseEvent* event){
    QPoint pt = event->pos();
    qDebug()<<pt;

    if (event->button() == Qt::LeftButton){
        qDebug()<<"left button";
    }
    else if (event->button() == Qt::RightButton){
        qDebug()<<"right button";
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值