QTエディターの書き換え

head.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QString>
#include <QPushButton>
#include <QTextEdit>
#include <QtDebug>
#include <QFontDialog>
#include <QFont>
#include <QColor>
#include <QColorDialog>
#include <QFileDialog>
#include <QFile>
namespace Ui {
    
    
class Widget;
}

class Widget : public QWidget
{
    
    
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();
    QPushButton *bt1,*bt2,*bt3,*bt4;
    QTextEdit *tb;
private:
    Ui::Widget *ui;
public slots:
    void btn_slot1();
    void btn_slot2();
    void btn_slot3();
    void btn_slot4();
};

#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->resize(800,600);
    this->setWindowTitle("编辑器");
    //QPushButton *bt1,*bt2,*bt3,*bt4;
    //QTextBrowser *tb;
    bt1 = new QPushButton("字体",this);
    bt1->resize(60,30);
    bt1->move(100,550);
    connect(bt1,&QPushButton::clicked,this,&Widget::btn_slot1);
    bt2 = new QPushButton("颜色",this);
    bt2->resize(60,30);
    bt2->move(300,550);
    connect(bt2,&QPushButton::clicked,this,&Widget::btn_slot2);
    bt3 = new QPushButton("打开文件",this);
    bt3->resize(60,30);
    bt3->move(500,550);
    connect(bt3,&QPushButton::clicked,this,&Widget::btn_slot3);
    bt4 = new QPushButton("保存文件",this);
    bt4->resize(60,30);
    bt4->move(650,550);
    connect(bt4,&QPushButton::clicked,this,&Widget::btn_slot4);
    tb = new QTextEdit(this);
    tb->setStyleSheet("border-radius:50px;");
    tb->resize(600,480);
    tb->move(100,50);
}

Widget::~Widget()
{
    
    
    delete ui;
}
//设置文本内容字体
void Widget::btn_slot1()
{
    
    
    bool ok;
    QFont F = QFontDialog::getFont(&ok,QFont("宋体",12,3,true),NULL,"选择字体");
    if(ok){
    
    
        this->tb->setFont(F);
    }

}
//设置文本框内容颜色
void Widget::btn_slot2()
{
    
    
    QColor C = QColorDialog::getColor(QColor("blue"),this,"选择颜色");
    this->tb->setTextColor(C);
}
//打开文件并读取到文本框
void Widget::btn_slot3()
{
    
    
    QString filename = QFileDialog::getOpenFileName(this,"选择文件","./","ALL(*.*);;");
    if(filename.isEmpty())
    {
    
    
        qDebug()<<"取消了";
        return ;
    }
    QFile file(filename);
    if(!file.exists()){
    
    
        qDebug()<<"文件不存在";
        return ;
    }
    if(!file.open(QIODevice::ReadWrite)){
    
    
        qDebug()<<"打开文件失败";
        return ;
    }
    QByteArray text = file.readAll();
    this->tb->setText(QString::fromUtf8(text));
    file.close();
}

void Widget::btn_slot4()
{
    
    
    QString filename = QFileDialog::getSaveFileName(this,"保存文件","./","ALL(*.*);;");
    QFile file(filename);
    if(!file.open(QIODevice::ReadWrite)){
    
    
        qDebug()<<"打开文件失败";
        return ;
    }
    QString m=this->tb->toPlainText();
    file.write(m.toUtf8());
    file.close();
}

おすすめ

転載: blog.csdn.net/tupkoo/article/details/131215958