.h头文件
#include <QKeyEvent>
#include <QMouseEvent>
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void keyPressEvent(QKeyEvent *k);
void mousePressEvent(QMouseEvent *m);
private slots:
void newActionSlot();
void openActionSlot();
void saveActionSlot();
connect(ui->newAction, &QAction::triggered, this, &MainWindow::newActionSlot);
connect(ui->openAction, &QAction::triggered, this, &MainWindow::openActionSlot);
connect(ui->saveAction, &QAction::triggered, this, &MainWindow::saveActionSlot);
新建函数
void MainWindow::newActionSlot()
{
ui->textEdit->clear();
this->setWindowTitle("新建文本文档.txt");
}
打开函数
void MainWindow::openActionSlot()
{
//选择文件将字符串赋给fileName
QString fileName = QFileDialog::getOpenFileName(this, "选择一个文件",
QCoreApplication::applicationFilePath(), "*.cpp");
if (fileName.isEmpty())
{
QMessageBox::warning(this, "警告", "请选择一个文件");
}
else
{
//qDebug() << fileName;
QFile file(fileName); //创建文件对象
file.open(QIODevice::ReadOnly);
QByteArray ba = file.readAll();
ui->textEdit->setText(QString(ba));
file.close();
}
}
保存函数
void MainWindow::saveActionSlot()
{
QString fileName = QFileDialog::getSaveFileName(this, "选择一个文件",
QCoreApplication::applicationFilePath());
if (fileName.isEmpty())
{
QMessageBox::warning(this, "警告", "请选择一个文件");
}
else
{
QFile file(fileName);
file.open(QIODevice::WriteOnly);
//ui->textEdit->toPlainText();
QByteArray ba;
ba.append(ui->textEdit->toPlainText());
//写入
file.write(ba);
file.close();
}
}
检测键盘操作
void MainWindow::keyPressEvent(QKeyEvent *k)
{
if (k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_S)
{
saveActionSlot();
}
}
检测鼠标操作
void MainWindow::mousePressEvent(QMouseEvent *m)
{
QPoint pt = m->pos();
qDebug() << pt;
if (m->button() == Qt::LeftButton)
{
qDebug() << "左键被按下";
}
else if (m->button() == Qt::RightButton)
{
qDebug() << "右键被按下";
}
}