QT Day3

作业:

完成保存文件

完成图标根据键盘输入移动

QT Day3_第1张图片

#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()<<"键盘按下了"<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;
    }
}

QT Day3_第2张图片

#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()<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();
}

思维导图:

QT Day3_第3张图片

你可能感兴趣的:(qt)