QTday3
作业1:通过对话框实现保存文件
void burger::on_saveBtn_clicked()
{//调用函数,获取文件路径QString filename = QFileDialog::getSaveFileName(this,"选择文件夹","./","Text File(*.txt)");if(filename.isNull()){QMessageBox::information(this,"提示","你取消了保存文件");return;}QString q = ui->textEdit->toPlainText();//实例化文件对象QFile file(filename);//判断文件是否正常打开if(!file.open(QFile::ReadWrite)){return;}QByteArray msg;msg.append(q);int a = file.write(msg);if(a == -1){QMessageBox::warning(this,"警告","写入失败");return;}ui->textEdit->setText("");file.close();
}
作业2:
用键盘实现上下左右移动一个label
#include "burger.h"
#include "ui_burger.h"burger::burger(QWidget *parent): QWidget(parent), ui(new Ui::burger)
{ui->setupUi(this);QPixmap p(":/112.jpg");ui->label->setPixmap(p);ui->label->setScaledContents(true);}burger::~burger()
{delete ui;
}//键盘按下事件
void burger::keyPressEvent(QKeyEvent *event)
{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()-5);}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()+5);}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()-5,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()+5,ui->label->y());}break;}
}
//键盘抬起事件
void burger::keyReleaseEvent(QKeyEvent *event)
{}
思维导图: