#include "mainwindow3.h" MainWindow3::MainWindow3(QWidget *parent) : QMainWindow(parent) { setWindowTitle("对话框学习中..."); setWindowIcon(QIcon(":/icon/start")); resize(1200, 960); mEdit = new QTextEdit(this); //mEdit->close(); setCentralWidget(mEdit); QStatusBar *bar = new QStatusBar(this); btn1 = new QPushButton("打开文本文件", bar); btn2 = new QPushButton("保存文本文件", bar); btn3 = new QPushButton("颜色对话框", bar); btn4 = new QPushButton("字体对话框", bar); bar->addWidget(btn1); bar->addWidget(btn2); bar->addWidget(btn3); bar->addWidget(btn4); connect(btn1, &QPushButton::clicked, [&](){ // 获取待打开的文件名 (已存在的文件) // QString fileName = QFileDialog::getOpenFileName(this, "选择图片文件", ".", "Png(*.png);;Jpeg(*.jpg)"); QString fileName = QFileDialog::getOpenFileName(this, "选择文本文件", ".", "Text(*.txt)"); qDebug() << "打开文件的位置:" << fileName ; QFile file(fileName); if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){ // 以只读文本的模式打开文件失败 QMessageBox::critical(this, "错误", fileName+" 打开失败!"); return; } QTextStream in(&file); mEdit->setText(in.readAll()); file.close(); }); connect(btn2, &QPushButton::clicked, [&](){ // 保存文件时,获取待保存的文件名 (可以是新文件) // QString fileName = QFileDialog::getSaveFileName(this,"保存文件位置","."); QString fileName = QFileDialog::getSaveFileName(this,"保存文件位置","d:/", "Text(*.txt)"); qDebug() << "保存文件的位置: " << fileName ; QFile file(fileName); if(!file.open(QIODevice::WriteOnly|QIODevice::Text)){ QMessageBox::critical(this, "错误", fileName+" 保存失败!"); return; } QTextStream out(&file); // 将文本编辑控件 mEdit 中的文本写入到文件中。 out << mEdit->toPlainText(); // 调用 mEdit->toPlainText() 将返回编辑控件中的纯文本内容 file.close(); }); connect(btn3, &QPushButton::clicked, [&](){ QColor color = QColorDialog::getColor(Qt::black,this,"字体颜色选择"); mEdit->setTextBackgroundColor(color); // mEdit->setTextColor(color); // 条件: 光标选中的文本来设置颜色 }); connect(btn4, &QPushButton::clicked, [&](){ bool yes = true; QFont font = QFontDialog::getFont(&yes,this); mEdit->setCurrentFont(font); }); setStatusBar(bar); }