Qt文件读取和存储以及鼠标键盘事件

打开选择文件窗口

提前引入#include<QFileDialog>头文件

QString fileName = QFileDialog::getOpenFileName(this,("请选择一个文件"),
                QCoreApplication::applicationFilePath(),
                ("*.txt"));

1.(打开新窗口的父类,标题,默认打开的窗口路径,限制打开文件的类型)

2. 返回你打开文件的路径

if(fileName.isEmpty())
    {
        QMessageBox::warning(this,"警告","请选择一个文件");
    }

判断文件路径是否为空

读取文件

提前引入#include <QFile>

        QFile setFile(fileName);
        setFile.open(QIODevice::ReadOnly);
        QByteArray be = setFile.readAll();
        ui->textEdit->setText(QString(be));
        setFile.close();

打开文件五部曲

1.创建QFile对象 传递文件路径path

2.设置打开方式open(QIODevice::ReadOnly) 只读

3.读取文件 创建QByteArray对象 调用readAll()

4.最后将内容复制到区域 QByteArray类型转换成QString

5.关闭文件close()

存储文件

提前引入#include <QFile>

        QFile setFile(fileName);
        setFile.open(QIODevice::WriteOnly);
        // QByteArray转QString类型 调用toLatin1()方法
        QByteArray ba = ui->textEdit->toPlainText().toLatin1();
        setFile.write(ba);
        setFile.close();

需要将ui->textEdit中的QString类型的数据转换成QByteArray类型数据 用toLatin1()

再将数据写入指定的文件中 write()

存储文件

提前引入#include <QKeyEvent>

void keyPressEvent(QKeyEvent * k); // 键盘按下事件
void mousePressEvent(QMouseEvent *m); // 鼠标按下事件

函数实现键盘事件

void MainWindow::keyPressEvent(QKeyEvent * k)
{
    // 判断是否同时按下control和s
    if(k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_S)
    {
        saveActionSlot();
    }
}

QKeyEvent鼠标和键盘事件的关键形参,返回你按下的按钮

再用Qt封装好的按钮属性和事件 去对比

函数实现鼠标事件

void MainWindow::mousePressEvent(QMouseEvent *m)
{
    QPoint pt = m->pos();
    qDebug() << pt;
    if(m->button() == Qt::LeftButton)
    {
        qDebug() << "左键被按下";
    }
    if(m->button() == Qt::RightButton)
    {
        qDebug() << "右键被按下";
    }
}

QPoint pt = m->pos() 获取鼠标的位置 (x,y)

调用m->button() 判断是按了左边按钮还是右边按钮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值