文件保存
.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include
#include
#include
#include
#include
#include
#include
#include
//include
Widget::Widget(QWidget *parent):QWidget(parent),ui(new Ui::Widget)
{
ui->setupUi(this);
//========================================================//
connect(ui->NoB,&QPushButton::clicked,this,&Widget::out_Q1);//提示框
connect(ui->SB1,&QPushButton::clicked,this,&Widget::out_Q2);//字体
connect(ui->SB2,&QPushButton::clicked,this,&Widget::out_Q3);//颜色
connect(ui->SB3,&QPushButton::clicked,this,&Widget::out_Q4);//文件打开
connect(ui->SB4,&QPushButton::clicked,this,&Widget::out_Q5);//文件保存
//========================================================//
this->setWindowTitle("阿巴阿巴");
this->resize(430,327);
//this->setWindowIcon(QIcon("C:/Users/BlackMC/Desktop/icon/wodepeizhenshi.png"));
//this->setStyleSheet("background-color:orange");
//========================================================//
}
Widget::~Widget()
{
delete ui;
}
//标题弹框槽函数
void Widget::out_Q1()
{
//======QMessageBox实例化对象
//int ret = QMessageBox::warning(this,"信息","中午一起SLeep!",QMessageBox::Yes | QMessageBox::No,QMessageBox::Yes);
QMessageBox box(QMessageBox::Information,"信息","中午一起SLeep!",QMessageBox::Yes|QMessageBox::No,this);
//======
int ret = box.exec();
//======
if(ret == QMessageBox::Yes)
{
//test->say("爸爸");
QMessageBox::warning(this, QStringLiteral("阿巴阿巴"), QStringLiteral("好的我最喜欢了"), QMessageBox::Cancel | QMessageBox::Ok);
//QMessageBox::information(this, QStringLiteral("阿巴阿巴"), QStringLiteral("好的我最喜欢了"));
}
else
{
//test->say("爷爷");
QMessageBox::warning(this, QStringLiteral("阿巴阿巴"), QStringLiteral("好可惜啊,下次再约"), QMessageBox::Cancel | QMessageBox::Ok);
}
}
//字体类型修改
void Widget::out_Q2()
{
//调用QF
bool ok;
QFont f = QFontDialog::getFont(&ok,QFont("等线",16,10,false),this,"选择字体");
//选中字体
if(ok)
{
//ui->Text1->setFont(f);
ui->Text1->setCurrentFont(f);
}
else
{
QMessageBox::information(this,"提示","你取消了选择字体");
}
}
//字体颜色修改
void Widget::out_Q3()
{
QColor c = QColorDialog::getColor(QColor("pink"),this,"选择颜色");
//
if(c.isValid())
{
//合法
ui->Text1->setTextColor(c);//字体本身
//ui->Text1->setTextBackgroundColor(c);//字体背景
}
else
{
//不合法
QMessageBox::information(this,"提示","你取消了选择color");
}
}
//文件打开
void Widget::out_Q4()
{
//调用QFileDialog的静态成员函数getOpenFileName获取文件
QString s1 = QFileDialog::getOpenFileName(this,
"选择文件",
"./",
"image File(*.png *.jpg *.bmp);;Text File(*.txt);;All(*.*)");
//
if(s1.isNull())
{
QMessageBox::information(this,"提示","你取消了选择文件");
}
//输出路径
qDebug() << s1;
//实例化一个文件对象
QFile file(s1); //获取到的文件路径,后期文件操作的都是基于这个对象
//判断文件是否存在
if(!file.exists())
{
return;
}
//打开文件
if(!file.open(QFile::ReadWrite))
{
return;
}
// 读取文件的内容
QByteArray msg = file.readAll();
//内容展示
//ui->Text1->setText(QString::fromLocal8Bit(msg));
ui->Text1->setText(msg);
//关闭文件
file.close();
}
//文件保存
void Widget::out_Q5()
{
//获取要保存的文件名
QString saveFileName = QFileDialog::getSaveFileName(this,
"保存文件",
"./",
"Text File(*.txt);;All(*.*)");
//如果文件名为空,则提示用户
if (saveFileName.isNull())
{
QMessageBox::information(this, "滴滴", "取消保存");
return;
}
//实例化一个文件对象
QFile file(saveFileName);
//打开文件,使用QIODevice::WriteOnly模式表示只写入文件
if (!file.open(QIODevice::WriteOnly))
{
QMessageBox::warning(this, "Error", "无法保存");
return;
}
//获取文本编辑器中的内容
QString content = ui->Text1->toPlainText();
//将内容转换为字节数组
QByteArray byteArray = content.toUtf8();
//写入文件
qint64 bytesWritten = file.write(byteArray);
//判断是否成功写入文件
if (bytesWritten == -1)
{
QMessageBox::warning(this, "Error", "写入失败");
}
else
{
QMessageBox::information(this, "Success", "保存成功");
}
//关闭文件
file.close();
}
.h
#ifndef WIDGET_H
#define WIDGET_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
//signals:
//void sign_I1();
public slots:
void out_Q1();//提示框
void out_Q2();//字体类型
void out_Q3();//字体颜色
void out_Q4();//文件打开
void out_Q5();//文件保存
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
private:
QTextToSpeech *test;
};
#endif // WIDGET_H
球移动
.cpp
#include "app.h"
#include "ui_app.h"
#include
#include
#include
int k1 = 500;
int k2 = 500;
APP::APP(QWidget *parent):QWidget(parent),ui(new Ui::APP)
{
ui->setupUi(this);
this->resize(k1,k2);
}
APP::~APP()
{
delete ui;
}
//键盘按下事件处理函数
void APP::keyPressEvent(QKeyEvent *event)
{
qDebug() << "键盘按下了" << event->text() << "height: " << ui->label->height() << "Key值:" << event->key()<< ui->label->pos() ;
switch(event->key())
{
case 'W':
{
if(ui->label->y() <= 0-ui->label->height())//ui->label->height = 140
{
ui->label->move(ui->label->x(),this->height());
}
ui->label->move(ui->label->x(),ui->label->y()-1);
}break;
case 'S':
{
if(ui->label->y() >= k1)//500
{
ui->label->move(ui->label->x(),0-ui->label->height());//-140
}
ui->label->move(ui->label->x(),ui->label->y()+1);
}break;
case 'A':
{
if(ui->label->x() <= 0)
{
ui->label->move(k1,ui->label->y());
}
ui->label->move(ui->label->x()-1,ui->label->y());
}break;
case 'D':
{
if(ui->label->x() >= k2)//500
{
ui->label->move(0-ui->label->height(),ui->label->y());//-140
}
ui->label->move(ui->label->x()+1,ui->label->y());
}break;
}
}
//键盘抬起事件处理函数
void APP::keyReleaseEvent(QKeyEvent *event)
{
}
.h
#ifndef APP_H
#define APP_H
#include
#include
#include
#include //键盘事件头文件
QT_BEGIN_NAMESPACE
namespace Ui { class APP; }
QT_END_NAMESPACE
class APP : public QWidget
{
Q_OBJECT
public:
APP(QWidget *parent = nullptr);
~APP();
void keyPressEvent(QKeyEvent *event) override;
void keyReleaseEvent(QKeyEvent *event) override;
private:
Ui::APP *ui;
//QLineEdit *edit1;
};
#endif // APP_H