QTday3
- IT业界
- 2025-08-18 14:54:01

1、完成文本编辑器的保存工作
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } //字体对话框 void Widget::on_pushButton_clicked() { bool ok; //判断是否选中字体 QFont f= QFontDialog::getFont(&ok, QFont("宋体",10),this,"选择字体"); //参数1:是否选中状态 //参数2:初始字体 //参数三:父组件 if(ok) { //说明选择字体成功 //ui->textEdit->setFont(f); 将所有字体进行改变 ui->textEdit->setCurrentFont(f); //将选中的字体进行设置 } else { //未选择字体 QMessageBox::information(this,"提示","未选择字体"); } } //颜色对话框 void Widget::on_pushButton_2_clicked() { QColor c = QColorDialog::getColor(); //获取颜色 //将获取的颜色放在选中的字体上 //ui->textEdit->setTextColor(c); //设置字体颜色 ui->textEdit->setTextBackgroundColor(c); //设置字体的背景色 } //打开 void Widget::on_pushButton_3_clicked() { QString fileName = QFileDialog::getOpenFileName( this, "open file", "./", //起始路径 "TXT(*.txt)" ); //创建文件对象,打开给定的路径下的文件 QFile file(fileName); if(file.open(QFile::ReadWrite)) { //打开文件,可以进行读写数据 //将文件中的内容读取出来 QByteArray msg = file.readAll(); //将读取出来的内容放到ui界面上 ui->textEdit->setText(QString::fromLocal8Bit(msg)); } else { QMessageBox::information(this,"","文件打开失败"); } } //另存 void Widget::on_pushButton_4_clicked() { QString fileName = QFileDialog::getSaveFileName( this, "Save file", "./", "TXT(*.txt)"); //创建文件对象 QFile file(fileName); if(file.open(QFile::ReadWrite)) { QByteArray msg =file.readAll(); msg=ui->textEdit->toPlainText().toLocal8Bit(); file.write(msg); } else { QMessageBox::information(this,"","文件另存失败"); } }2、
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } //启动定时器按钮对应的槽函数 void Widget::on_startBtn_clicked() { timer_id = this->startTimer(1000); //功能:启动一个定时器 //参数:超时时间,每隔给定的时间后,自动调用定时器事件处理函数 //返回值:当前定时器的id号 } //关闭定时器按钮对应的槽函数 void Widget::on_closeBtn_clicked() { this->killTimer(timer_id); //关闭给定的定时器 } //定时器事件处理函数 void Widget::timerEvent(QTimerEvent *e) { if(e->timerId() == timer_id) //说明定时器1到位 { QTime sys_t = QTime::currentTime(); //获取系统时间 //将QTime类对象转换为字符串 QString t = sys_t.toString("hh:mm:ss"); //展示到ui界面 ui->timeLab->setText(t); //给播报员实例化空间 speecher = new QTextToSpeech(this); if(t == ui->lineEdit->text()){ speecher->say(ui->textEdit->toPlainText()); } // if(e->timerId() == timer_id_1) //说明定时器1到位 // { // } } }