目录
一、思维导图
二、作业
2.1 使用文件相关操作完成记事本的保存功能
2.2 处理键盘事件完成圆形的移动
一、思维导图
二、作业
2.1 使用文件相关操作完成记事本的保存功能
void Widget::on_saveBtn_clicked()
{
QString filename = QFileDialog::getSaveFileName(this,
"选择文件",
"./",
"Text File(*.txt)");
if(filename.isNull())
{
QMessageBox::information(this,"提示","您取消了保存文件");
}
//输出文件路径
qDebug()<<filename;
//1、判断文件是否存在
QFile file(filename);
if(!file.open(QFile::WriteOnly))
{
QMessageBox::information(this,"提示","打开文件失败");
return;
}
//2、获取文本编辑器中的内容
QString s = ui->textEdit->toPlainText();
QByteArray msg;
msg.append(s);
//3、将数据写入文件
file.write(msg);
//4、关闭文件
file.close();
}
2.2 处理键盘事件完成圆形的移动
//键盘按下事件处理函数的定义
void Widget::keyPressEvent(QKeyEvent *event)
{
qDebug()<<"键盘被按下了"<<event->text()<<"键值为:"<<event->key();
switch (event->key())
{
case 'W':
{
if(ui->label->y() <= 0 - ui->label->height())
{
ui->label->move(ui->label->x(),this->height());
}
ui->label->move(ui->label->x(),ui->label->y()-10);
}break;
case 'S':
{
if(ui->label->y() >= this->height())
{
ui->label->move(ui->label->x(),0-ui->label->height());
}
ui->label->move(ui->label->x(),ui->label->y()+10);
}break;
case 'A':
{
if(ui->label->x() <= 0 - ui->label->width())
{
ui->label->move(this->width(),ui->label->y());
}
ui->label->move(ui->label->x()-10,ui->label->y());
}break;
case 'D':
{
if(ui->label->x() >= this->width())
{
ui->label->move(0-ui->label->width(),ui->label->y());
}
ui->label->move(ui->label->x()+10,ui->label->y());
}break;
}
}