9.1作业

字体对话框、颜色对话框、文件对话框、保存和打开文件

widget.cpp

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

}

键盘按下处理函数之物体上下左右移动

cpp 复制代码
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;
    }
    }
}
相关推荐
ZZZ_O^O18 分钟前
二分查找算法——寻找旋转排序数组中的最小值&点名
数据结构·c++·学习·算法·二叉树
小飞猪Jay2 小时前
C++面试速通宝典——13
jvm·c++·面试
rjszcb3 小时前
一文说完c++全部基础知识,IO流(二)
c++
威桑4 小时前
记一次控件提升后,运行却不显示的Bug
qt
小字节,大梦想4 小时前
【C++】二叉搜索树
数据结构·c++
吾名招财4 小时前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
FL16238631294 小时前
[深度学习][python]yolov11+bytetrack+pyqt5实现目标追踪
深度学习·qt·yolo
我是哈哈hh5 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
憧憬成为原神糕手5 小时前
c++_ 多态
开发语言·c++
郭二哈5 小时前
C++——模板进阶、继承
java·服务器·c++