QT(day3)

作业要求: 

实现字体对话框、颜色对话框、文件对话框、文件操作操作。

头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFont>        //字体类
#include <QFontDialog>  //字体对话框类
#include <QColor>       //颜色类
#include <QColorDialog> //颜色对话框
#include <QString>
#include <QFile>        //文件类
#include <QFileDialog>  //文件对话框类
#include <QDebug>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_color_clicked();        //自定义颜色对应的槽函数声明

    void on_font_clicked();         //自定义字体对应的槽函数声明

    void on_open_clicked();         //自定义打开文件对应的槽函数声明

    void on_save_clicked();         //自定义保存文件对应的槽函数声明

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

功能函数

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("记事本");
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_color_clicked()
{
    QColor c = QColorDialog::getColor(QColor("black"),
                                      this,
                                      "修改颜色");
    if(c.isValid())
    {
        //修改字体的前景色
        ui->textEdit->setTextColor(c);
//        //修改字体背景色
//        ui->textEdit->setTextBackgroundColor(c);
    }

}

void MainWindow::on_font_clicked()
{
    bool ok;
    QFont f = QFontDialog::getFont(&ok,
                                   QFont("宋体",10,2,true),
                                   this,
                                   "修改字体");
    if(ok)
    {
        //修改所有字体
        ui->textEdit->setFont(f);

//        //修改所选字体
//        ui->textEdit->setCurrentFont(f);
    }
}

void MainWindow::on_open_clicked()
{
    QString filename = QFileDialog::getOpenFileName(
                this,
                "open file",
                "./",
                "All(*.*);;text(*.txt);;picture(*.png *.jpg),源文件(*.cpp)");
    if(filename.isEmpty())
    {
        qDebug() << "取消打开文件";
        return;
    }

    QFile file(filename);   //实例化文件对象

    if(!file.exists())      //判断文件是否存在
    {
        qDebug() << "文件不存在";
        return;
    }

    if(!file.open(QIODevice::ReadWrite))    //打开文件
    {
        qDebug() << "打开文件失败";
        return;
    }

    QByteArray text = file.readAll();       //读取文件全部数据

    ui->textEdit->setText(QString::fromLocal8Bit(text));

    file.close();
}

void MainWindow::on_save_clicked()
{
    QString filename = QFileDialog::getSaveFileName(
                this,
                "save file",
                "./",
                "All(*.*)");

    //实例化文件对象
        QFile file(filename);

        //打开文件
        if(!file.open(QIODevice::ReadWrite))
        {
            qDebug() << "打开文件失败";
            return;
        }

        //获取文本类容
        QString msg = ui->textEdit->toPlainText();

        //将类容写入文件中
        file.write(msg.toLocal8Bit());

        file.close();
}

主函数

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

效果图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值