qtday3

文本编辑对话框

.h

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

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

public slots:
    void font_btn();
    void color_btn();
    void openfilebtn();
    void savebtn();

private:
    Ui::Widget *ui;

    QTextEdit *edit;   //文本编辑框
    QPushButton *fontbtn1;   //字体按钮
    QPushButton *colorbtn2;   //颜色按钮
    QPushButton *openfilebtn3;   //打开文件按钮
    QPushButton *savebtn4;   //保存文件按钮

};

#endif // WIDGET_H

.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);


    this->setMaximumSize(400,300);
    this->setMinimumSize(400,300);


    this->setWindowTitle("记事本");
    this->setWindowIcon(QIcon(":/image/txt.png"));

    //文本编辑器
    edit=new QTextEdit(this);
    //设置文本编辑宽度
    edit->resize(400,200);


    fontbtn1=new QPushButton("修改字体",this);
    fontbtn1->move(30,220);


    colorbtn2 =new QPushButton("修改颜色",this);
    colorbtn2->move(270,220);


    openfilebtn3 =new QPushButton("打开文件",this);
    openfilebtn3->move(30,260);

    savebtn4 = new QPushButton("保存文件",this);
    savebtn4->move(270,260);

    //连接槽函数和按钮
    connect(fontbtn1,&QPushButton::clicked,this,&Widget::font_btn);

    //连接槽函数和颜色按钮
    connect(colorbtn2,&QPushButton::clicked,this,&Widget::color_btn);

    //连接槽函数和打开文件按钮
     connect(openfilebtn3,&QPushButton::clicked,this,&Widget::openfilebtn);

    //连接槽函数和
     connect(savebtn4,&QPushButton::clicked,this,&Widget::savebtn);





}

Widget::~Widget()
{
    delete ui;
}
//字体按钮槽函数
void Widget::font_btn()
{
    bool ok;
    QFont f =QFontDialog::getFont(&ok,QFont("隶书",10,2,true),NULL,"字体选择");

    //如果ok为真,则选择当前选中的字体类型
    if(ok)
    {
        edit->setFont(f);
    }

    else
    {
        qDebug()<<"用户取消选择";

    }

}
//颜色槽函数
void Widget::color_btn()
{
   QColor c = QColorDialog::getColor(QColor("pink"),this,"选择颜色");

   //对颜色进行判断是否合法
   if(c.isValid())
   {
       edit->setTextColor(c);
   }

   else
   {
       qDebug()<<"用户取消选择颜色";

   }

}
// 打开文件按钮对应的槽函数
void Widget::openfilebtn()
{
    QString filename = QFileDialog::getOpenFileName(this,"选择目录","./","ALL(*.*);;Text(*.txt);;源文件(*.cpp)");

    //判断用户是否选中文件
    if(filename.isEmpty())
    {
        qDebug()<<"用户取消了选择文件";
        return;
    }

    //输入文件路径
    qDebug()<setText(QString::fromLocal8Bit(text));
    //关闭文件
    file.close();



}
//保存文件按钮对应的槽函数
void Widget::savebtn()
{
    QString filename =QFileDialog::getSaveFileName(this,"保存文件","./","ALL(*.*)");

    //实例化文件对象
    QFile file(filename);
    if(!file.open(QIODevice::ReadWrite))
    {
        qDebug()<<"文件打开失败";
        return ;
    }
    //获取UI界面中的文本内容
    QString  msg =edit->toPlainText();
    //将msg写入文件中
    file.write(msg.toLocal8Bit());
    //关闭文件
    file.close();
}

结果:

qtday3_第1张图片

 

你可能感兴趣的:(c++,qt)