字体对话框、颜色对话框、文件对话框、保存和打开文件
widget.cpp
#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_zitibtn_clicked()
{
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_yansebtn_clicked()
{
//调用静态成员函数,获取系统 中的颜色对话框
QColor c=QColorDialog::getColor(QColor("pink"),
this,
"选择颜色");
if(c.isValid())
{
//颜色合法,直接使用即可
//ui->textEdit->setTextColor(c);
ui->textEdit->setTextBackgroundColor(c);//字体背景色
}
else
{
QMessageBox::information(this,"提示","您取消了选择颜色");
}
}
void Widget::on_openbtn_clicked()
{
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界面
ui->textEdit->setText(msg);
}
void Widget::on_baocunbtn_clicked()
{
QString filename=QFileDialog::getSaveFileName(this,
"选择文件",
"./",
"Image File(*.png *.jpg *bmp);;Text File(*.txt);;All(*.*)");
if(filename.isNull())
{
QMessageBox::information(this,"提示","您取消选择文件");
return;
}
qDebug()<<filename;
//实例化文件对象
QFile file(filename);//使用获取到的文件路径,实例化一个文件对象
if(!file.open(QFile::WriteOnly|QFile::Text))
{
QMessageBox::critical(this,"错误","无法打开文件");
return;
}
QString text = ui->textEdit->toPlainText();
QByteArray byteArray = text.toLocal8Bit();
file.write(byteArray);
file.close();
}
键盘按下处理函数之物体上下左右移动
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()-5);
break;
}
case 'S':
{
ui->label->move(ui->label->x(),ui->label->y()+5);
if(ui->label->y()>=this->height())
{
ui->label->move(ui->label->x(),0-ui->label->height());
}
break;
}
case 'A':
{
ui->label->move(ui->label->x()-5,ui->label->y());
if(ui->label->x()<=0-ui->label->width())
{
ui->label->move(this->width(),ui->label->y());
}
break;
}
case 'D':
{
ui->label->move(ui->label->x()+5,ui->label->y());
if(ui->label->x()>=this->width())
{
ui->label->move(0-ui->label->width(),ui->label->y());
}
break;
}
}
}