作业:
完成保存文件
完成图标根据键盘输入移动
#include "cenz.h"
#include "ui_cenz.h"
Cenz::Cenz(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Cenz)
{
ui->setupUi(this);
QPixmap a(":/1.png");
ui->label->setScaledContents(true);
Cenz::ui->label->setPixmap(a);
}
Cenz::~Cenz()
{
delete ui;
}
int speed=10;
void Cenz::keyPressEvent(QKeyEvent *event)
{
//qDebug()<<"键盘按下了"<<event->text();
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()-speed);
}
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()-speed,ui->label->y());
}
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()+speed);
}
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()+speed,ui->label->y());
}
break;
}
}
#include "cen.h"
#include "ui_cen.h"
Cen::Cen(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Cen)
{
ui->setupUi(this);
}
Cen::~Cen()
{
delete ui;
}
void Cen::on_FontBtn1_clicked()
{
bool ok;
//调用QFontDialog类中的静态函数,getfont用于调取对应的字体对话框
QFont f =QFontDialog::getFont(&ok,QFont("黑体",10,10,false),this,"选择字体");
if(ok)
{
ui->TE1->setFont(f);
}
else
{
QMessageBox::information(this,"提示","取消了选择字体");
}
}
void Cen::on_CorBtn_clicked()
{
QColor c =QColorDialog::getColor(QColor("pink"),//初始颜色
this, //父组件
"选择颜色"); //标题
if(c.isValid())
{
ui->TE1->setTextColor(c);
}
else
{
QMessageBox::information(this,"提示","取消了选择颜色");
}
}
void Cen::on_OpenBtn_clicked()
{
//调用QFileDialog静态成员
QString fileName = QFileDialog::getOpenFileName(this,
"选择文件",//父组件
"./",//起始目录
"Image File(*.png *.jpg *bmp);"
";Text File(*.txt);"
";All(*.*)");//过滤器
if(fileName.isNull())
{
QMessageBox::information(this,"提示","取消了选择文件");
return;
}
qDebug()<<fileName;
QFile file(fileName);
if(!file.exists())
{
return;
}
if(!file.open(QFile::ReadWrite))
{
return;
}
QByteArray msg =file.readAll();
ui->TE1->setText(msg);
file.close();
}
void Cen::on_SaveBtn_clicked()
{
//调用QFileDialog静态成员
QString fileName = QFileDialog::getSaveFileName(this,
"保存文件", // 父组件
"./", // 起始目录
"Text File(*.txt);;All Files(*.*)"); // 过滤器
if (fileName.isNull())
{
QMessageBox::information(this, "提示", "取消了保存文件");
return;
}
qDebug() << fileName;
QFile file(fileName);
if (!file.open(QFile::WriteOnly))
{
return;
}
// 获取需要保存的文本数据
QString textToSave = ui->TE1->toPlainText();
QByteArray data;
// 写入文件
data.append(textToSave);
int a=file.write(data);
if (a == -1)
{
// 写入失败
QMessageBox::critical(this, "错误", "保存文件失败");
}
else
{
QMessageBox::information(this, "提示", "保存文件成功");
}
file.close();
}
思维导图: