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保存鼠标的坐标。

相关推荐
.ZGR.7 分钟前
线程池相关知识及并发统计案例实现
java·开发语言
流年如夢9 分钟前
初入C++
开发语言·c++
zzzsde11 分钟前
【Linux】线程同步和互斥(1):线程互斥与加锁实现
linux·运维·服务器·开发语言·算法
yoyo_zzm11 分钟前
编程语言大比拼:C++到PHP全解析
开发语言·c++·php
努力努力再努力wz19 分钟前
【C++高阶数据结构系列】:时间轮定时器详解:原理分析与代码实现,带你从零手撕时间轮!(附时间轮的实现源码)
c语言·开发语言·数据结构·c++·qt·算法·ui
Chen_harmony40 分钟前
十九、数据在内存中的存储
c语言·开发语言
basketball61641 分钟前
C 的 malloc/free 与 C++ 的 new/delete 一些区别
c语言·开发语言·c++
iiiiyu42 分钟前
⾯向对象和集合编程题
java·大数据·开发语言·数据结构·编程语言
郝学胜-神的一滴44 分钟前
Qt 高级开发 006: 架构全解 + 高效学习指南
开发语言·c++·qt·程序人生·架构
Achou.Wang1 小时前
Concurrency patterns - Go 并发模式
开发语言·后端·golang