0%

notepad

learned

  • QFileDialog用于获取需要打开的文件(点击)
  • QFile::open打开文件,readAll()获取QByteArray类型的数据
  • 键与槽函数Qt::ControlModifier,mousePressEvent,QPoint
1
2
3
4
if(QKetEvent* k->modifiers()==Qt::ControlModifier && k->key()==Qt::Key_S)
{
saveActionSlot();
}
  • 槽函数的连接(与按键事件)
1
connect(ui->newAction,&QAction::triggered,this,&MainWindow::newActionSlot);

code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QFileDialog>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);

connect(ui->newAction,&QAction::triggered,this,&MainWindow::newActionSlot);
connect(ui->openAction,&QAction::triggered,this,&MainWindow::openActionSlot);
connect(ui->saveAction,&QAction::triggered,this,&MainWindow::saveActionSlot);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::newActionSlot()
{
ui->textEdit->clear();
this->setWindowTitle("新建文本文档.txt");
}

void MainWindow::openActionSlot()
{
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
{
// qDebug()<<fileName;
QFile file(fileName);
file.open(QIODevice::WriteOnly);
QByteArray ba;
ba.append(qPrintable(ui->textEdit->toPlainText()));
file.write(ba);
file.close();
}

}

void MainWindow::keyPressEvent(QKeyEvent *k)
{
if(k->modifiers()==Qt::ControlModifier && k->key()==Qt::Key_S)
{
saveActionSlot();
}
else if(k->modifiers()==Qt::ControlModifier&&k->key()==Qt::Key_N)
{
newActionSlot();
}
else if(k->modifiers()==Qt::ControlModifier&&k->key()==Qt::Key_O)
{
openActionSlot();
}
}

void MainWindow::mousePressEvent(QMouseEvent *m)
{
QPoint pt = m->pos();
qDebug()<<pt;

if(m->button()==Qt::LeftButton)
{
qDebug()<<"左键被按下";
}
else if(m->button()==Qt::RightButton)
{
qDebug()<<"右键被按下";
}
}