打开选择文件窗口
提前引入#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() 判断是按了左边按钮还是右边按钮