qt使用事件来进行文件操作

使用键盘进行操作

cpp 复制代码
#include<QKeyEvent>

包含的头文件

在.h文件中添加此函数

cpp 复制代码
 void keyPressEvent(QKeyEvent*k);

在.cpp中的实现操作

cpp 复制代码
void MainWindow::keyPressEvent(QKeyEvent*k)
{
    if(k->modifiers()==Qt::ControlModifier&&k->key()==Qt::Key_S)
    {
        saveActionSlot();

    }

}

Qt::ControlModifier是键盘敲ctrl键的操作

这行代码是在键盘敲下crtl和s键实现文件另存为操作

cpp 复制代码
void MainWindow::saveActionSlot()
{
    QString filename=QFileDialog::getSaveFileName(this,"选择一个文件保存",
                      QCoreApplication::applicationFilePath());
    if(filename.isEmpty())
    {
        QMessageBox::warning(this,"警告","请选择一个文件");
    }
    else
    {
        QFile file(filename);
        file.open(QIODevice::WriteOnly);
        // QByteArray ba;
        // ba.append(ui->textEdit->toPlainText());
        file.write(ui->textEdit->toPlainText().toUtf8().data());
        file.close();
    }
}

这是实现另存为函数的代码。

使用鼠标进行操作

cpp 复制代码
#include<QMouseEvent>

添加头文件

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

pt保存鼠标的坐标。

相关推荐
沐知全栈开发2 分钟前
《XHR.readyState详解及在JavaScript中的应用》
开发语言
qq_433554546 分钟前
C++ 进阶动态规划(小明的背包3)
开发语言·c++·动态规划
YouEmbedded6 分钟前
解码继承——代码复用与层次化设计
开发语言·c++·继承
这是个栗子13 分钟前
【JS知识点总结】JavaScript 中的精确取整:Math.floor、Math.ceil 与 Math.round
开发语言·javascript·ecmascript
红石程序员30 分钟前
Python环境管理
开发语言·python
Chennnng32 分钟前
关于python版本,显卡版本,torch版本之间的问题
开发语言·python
rit843249936 分钟前
基于MATLAB的多变量动态矩阵控制(DMC)仿真实现
开发语言·matlab·矩阵
pyniu44 分钟前
项目实站day7--功能之营业额统计,用户数量统计
java·开发语言·spring boot·spring
一周困⁸天.1 小时前
K8S-NetworkPolicy
java·开发语言
m0_471199631 小时前
【JavaScript】前端如何处理服务端部分接口加解密
开发语言·前端·javascript