1.对话框
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
//字体按钮对应的槽函数
void Widget::on_fontbtn_clicked()
{
//调用QFontDialog类中的静态成员函数,getFont函数来调取系统提供的字体对话框
bool ok; //用于接收用户是否选中了字体
QFont f= QFontDialog::getFont(&ok, //返回是否选中字体
QFont("宋体",10,10,false), //初始字体
this, //父组件
"选择字体"); //对话框标题
//将选中的字体进行使用
if(ok)
{
//选中了字体,将字体设置到文本上
// ui->textEdit->setFont(f);
ui->textEdit->setCurrentFont(f);
}
else
{
//没选中字体
QMessageBox::information(this,"提示","取消了字体选择");
}
}
//颜色按钮对应的槽函数
void Widget::on_colorbtn_clicked()
{
//调用静态成员函数,获取系统中的颜色对话框
QColor c=QColorDialog::getColor(QColor("balck"),
this,
"选择颜色");
//对选中的颜色判断合法性
if(c.isValid())
{
//颜色合法,直接使用即可
//ui->textEdit->setTextColor(c);
ui->textEdit->setTextBackgroundColor(c);
}
else
{
//颜色不合法
QMessageBox::information(this,"提示","取消了颜色选择");
}
}
void Widget::on_openbtn_clicked()
{
//调用QFileDialog的静态成员函数getOpenFileName来获取选中文件的路径
QString fileName=QFileDialog::getOpenFileName(this, //父组件
"选择文件", //对话框标题
"./", //起始路径
"Image File(*.png *.jpg *.bmp);;Text File(*.txt);;All File(*.*)");
//判断是否选中文件
if(fileName.isNull())
{
QMessageBox::information(this,"提示","已取消选择文件");
return;
}
//输出文件路径
qDebug()<<fileName;
//1.实例化一个文件对象
QFile file(fileName); //使用获取到文件路径,实例化一个文件对象,后期对文件的操作都是基于该对象
//2.判断文件是否存在
if(!file.exists())
{
return;
}
//3.打开文件
if(!file.open(QFile::ReadWrite))
{
return;
}
//4.读取文件中的内容
QByteArray msg = file.readAll();
//5.将内容展示到ui界面
ui->textEdit->setText(QString::fromLocal8Bit(msg));
//6.关闭文件
file.close();
}
void Widget::on_savebtn_clicked()
{
//调用QFileDialog的静态成员函数getOpenFileName来获取选中文件的路径
QString fileName=QFileDialog::getSaveFileName(this, //父组件
"选择文件", //对话框标题
"./", //起始路径
"Image File(*.png *.jpg *.bmp);;Text File(*.txt);;All File(*.*)");
//判断是否选中文件
if(fileName.isNull())
{
QMessageBox::information(this,"提示","已取消选择文件");
return;
}
//输出文件路径
qDebug()<<fileName;
//1.实例化一个文件对象
QFile file(fileName); //使用获取到文件路径,实例化一个文件对象,后期对文件的操作都是基于该对象
//2.判断文件是否存在
// if(!file.exists())
// {
// return;
// }
//3.打开文件
if(!file.open(QFile::ReadWrite))
{
return;
}
//4.写入文件内容
QString buf = ui->textEdit->toPlainText();
file.write(buf.toLocal8Bit());
//6.关闭文件
file.close();
}
2.事件处理
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
//键盘按下事件处理函数
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()-2);
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()+2);
break;
}
//左移函数
case 'A':
{
if(ui->label->x()+ui->label->width()<=0)
{
ui->label->move(this->width(),ui->label->y());
}
ui->label->move(ui->label->x()-2,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()+2,ui->label->y());
break;
}
}
}
3.思维导图