widget.h
#include "widget.h"
#include "ui_widget.h"
#include<QFont> //字体类
#include<QFontDialog> //字体对话框
#include<QColorDialog>
#include<QColor>
#include<QMessageBox>
#include<QFileDialog> //文件对话框
#include<QString>
#include<QDebug>
#include<QFile>
#include<QByteArray>
#include<QInputDialog>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_fontbtn_clicked()
{
bool ok; //用于接收用户是否选中字体
QFont f = QFontDialog::getFont(&ok,
QFont("楷体",10,10), //对话框初始字体
this, //设置父组件
"选择字体"); //对话框标题
//对是否选中(ok)进行判断
if(ok ==true)
{
//将选中的字体设置到文本编辑器中
//ui->textEdit->setFont(f); //对所有字体进行设置
ui->textEdit->setCurrentFont(f); //对选中的字体进行更改
}else
{
QMessageBox::information(this,"提示","用户取消了选择颜色");
}
//将选中的
}
//颜色按钮对应的槽函数
void Widget::on_colorbtn_clicked()
{
//调用静态成员函数获取系统颜色对话框
QColor c = QColorDialog::getColor(QColor("red"),this,"选择你喜欢的颜色");
//对选择的函数进行判断
if(c.isValid())
{
//表示用户点击确定按钮
//将选中的颜色设置到文本编辑器中
//ui->textEdit->setTextColor(c); //设置字体颜色
ui->textEdit->setTextBackgroundColor(c); //设置背景颜色
}else
{
//用户点击的取消按钮
QMessageBox::information(this,"提示","用户取消了选择颜色");
}
}
//文件对话框对应的槽函数
void Widget::on_openfilebtn_clicked()
{
//调用文件对话框的函数
QString fname = QFileDialog::getOpenFileName(this,
"选择文件",
"./",
"all(*.*);;text(*.text);;Image(*.png *.jpg *.xpm);;soures(*.cpp)");
//进行文件IO操作
//1.实例化一个文件对象
QFile f; //使用无参构造
f.setFileName(fname); //设置要管理的文件
//2.打开文件
if(!f.exists())
{
QMessageBox::information(this,"提示","文件不存在");
}
if(!f.open(QFile::ReadOnly|QFile::WriteOnly))
{
QMessageBox::information(this,"提示","文件打开失败");
}
//程序至此,表示文件已经打开
//读取文件中的数据
QByteArray msg = f.readAll();
//
ui->textEdit->setText(QString(msg));
//4.关闭文件
f.close();
}
//输入对话框对应的槽函数
void Widget::on_inputbtn_clicked()
{
bool ok; //判断用户是否确认输入
//调用静态成员函数,获取一个输入对话框
QString text = QInputDialog::getText(this,
"输入文本", //对话框标题
"请输入姓名",
QLineEdit::Password, //设置回显模式
"", //输入框的默认文本
&ok); //判断用户是否选中输入的数据
if(ok ==true)
{
//表示用户确定了输入的数据,可以正常使用数据了
qDebug()<<text;
}else
{
QMessageBox::information(this,
"展示",
"用户取消了输入数据");
}
}
void Widget::on_savebtn_clicked()
{
// 弹出文件对话框,获取用户选择的保存路径和文件名
QString fileName = QFileDialog::getSaveFileName(this,
tr("另存为"), // 对话框标题
"./", // 默认路径
tr("Text files (*.txt);;All files (*.*)")); // 文件过滤器
// 如果用户没有选择文件,直接返回
if (fileName.isEmpty()) {
QMessageBox::information(this, "提示", "用户取消了保存操作");
return;
}
// 创建 QFile 对象,用于文件操作
QFile file(fileName);
// 尝试以写模式打开文件
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::warning(this, "警告", "无法打开文件进行保存");
return;
}
// 获取 QTextEdit 中的文本内容
QString text = ui->textEdit->toPlainText();
// 将文本内容写入文件
QTextStream out(&file);
out << text;
// 关闭文件
file.close();
// 提示用户保存成功
QMessageBox::information(this, "提示", "文件保存成功");
}
widget,h\
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_fontbtn_clicked();
void on_colorbtn_clicked();
void on_openfilebtn_clicked();
void on_inputbtn_clicked();
void on_savebtn_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H


1122

被折叠的 条评论
为什么被折叠?



