#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextEdit>//中心部件
#include <QMessageBox> //消息提示框
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDialog> //模态框
#include <QDebug>
#include <QLabel>
#include <QFont> //字体
#include <QFontDialog> //字体选择框
#include <QStatusBar> //状态栏
#include <QFileDialog> //文件操作框
#include <QFile> //文件操作
#include <QKeySequence> //快捷键
#include <QPushButton>
#include <QDesktopServices>
void MainWindow::updateFontSize() //更新字体大小
{
this->wordSize=ui->textEdit->font().pointSize();
this->leftWordStatus->setNum(this->wordSize);
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//标题
this->setWindowTitle("闲事录");
this->resize(600,500);
this->wordSize=ui->textEdit->font().pointSize();
this->leftStatus=new QLabel("字体大小:");
this->leftWordStatus=new QLabel("");
this->leftWordStatus->setNum(this->wordSize);
ui->statusBar->addWidget(this->leftStatus);//左边
ui->statusBar->addWidget(this->leftWordStatus);//左边
//this->rightStatus=new QLabel("文本字数:");
ui->statusBar->addPermanentWidget(this->rightStatus);
//另存为
ui->actionSaveAs->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S));
connect(ui->actionSaveAs,&QAction::triggered,[this](){
//打开文本保存框,用户选中文件保存时 得到绝对路径
//判断用户选择路径不为空
//得到用户输入内容
//创建文件对象,使用只读打开,将内容写入到文件中
this->filePath= QFileDialog::getSaveFileName(this,"另存为","c:/1");
if(!this->filePath.isEmpty()){
QString content= ui->textEdit->toPlainText();
QFile file(this->filePath);
file.open(QIODevice::WriteOnly);
file.write(content.toUtf8());
}
});
//保存功能
ui->actionSave->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S));
connect(ui->actionSave,&QAction::triggered,this,&MainWindow::saveFile);
//新建
connect(ui->actionNew,&QAction::triggered,[this](){
// 如果 isSave 为 false时,需要提示保存
if(this->isSave==false){
QMessageBox myBox(
QMessageBox::Question,
"提醒",
"你的内容没有保存,请确认是否保存!",
QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel
);
myBox.setButtonText(QMessageBox::Yes,"保存");
myBox.setButtonText(QMessageBox::No,"不保存");
myBox.button(QMessageBox::Cancel)->setText("取消");
int choses=myBox.exec();
if(choses==QMessageBox::Yes)
{
this->saveFile();
ui->textEdit->clear();//清空
this->isSave=true;
this->filePath="";
}
else if (choses==QMessageBox::No){
ui->textEdit->clear();//清空
this->isSave=true;
this->filePath="";
}
}
});
//打开
connect(ui->actionOpen,&QAction::triggered,[this](){
this->judgeIsSaved();
//打开新文件
this->filePath = QFileDialog::getOpenFileName(this,"打开","c:/","*.txt");
if(!this->filePath.isEmpty())
{
//根据文件路径读取内容
QFile file(this->filePath);
file.open(QIODevice::ReadOnly);
QByteArray buf=file.readAll();
//将读取的内容设置到textEdit中
ui->textEdit->setText(QString(buf));
this->isSave=true;//更新保存状态
}
});
//1. 点击"退出"时,弹出询问框; 继续点击“确定”按钮时退出程序, 点击“取消”, 不关闭程序
connect(ui->actionExit,&QAction::triggered,[this](){
this->judgeIsSaved();
this->close();
});
//编辑菜单==================================
//复制
ui->actionCopy->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_0));
connect(ui->actionCopy,&QAction::triggered,ui->textEdit,&QTextEdit::copy);
//剪切
ui->actionCut->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_1));
connect(ui->actionCut,&QAction::triggered,ui->textEdit,&QTextEdit::cut);
//粘贴
connect(ui->actionStick,&QAction::triggered,ui->textEdit,&QTextEdit::paste);
//撤销
connect(ui->actionWithDrawn,&QAction::triggered,ui->textEdit,&QTextEdit::undo);
//格式菜单==================================
//自动换行
connect(ui->actionAutoLineWrap,&QAction::triggered,[this](){
if(ui->textEdit->lineWrapMode()==QTextEdit::NoWrap){
ui->textEdit->setLineWrapMode(QTextEdit::WidgetWidth);
ui->actionAutoLineWrap->setIcon(QIcon(":/images/duihao"));
}
else {
ui->textEdit->setLineWrapMode(QTextEdit::NoWrap);
ui->actionAutoLineWrap->setIcon(QIcon(""));
}
});
//2. 点击"字体时",能够弹出字体选择框,最终能够得到用户选择的字体信息。(并能作用到多行文本框上)
connect(ui->actionFont,&QAction::triggered,[this](){
bool flag;
QFont f=QFontDialog::getFont(&flag);
ui->textEdit->setFont(f);
this->updateFontSize();
});
//3. 点击“状态栏”,有对号,就显示状态栏; 没有对号,就不显示状态栏
connect(ui->actionStatus,&QAction::triggered,[this](){
this->statusFlag=!this->statusFlag;
if(this->statusFlag)
{
ui->actionStatus->setIcon(QIcon(":/images/duihao"));
ui->statusBar->show();
}
else
{
ui->actionStatus->setIcon(QIcon(""));
ui->statusBar->hide();
}
});
//4. 点击"缩放"—>"放大" | "缩小"时, 多行文本框中的字体大小会变大、变小
connect(ui->actionBigger,&QAction::triggered,[this](){
QFont currFont=ui->textEdit->font();
currFont.setPointSize(ui->textEdit->font().pointSize()+5);
ui->textEdit->setFont(currFont);
this->updateFontSize();
});
connect(ui->actionSmaller,&QAction::triggered,[this](){
QFont currFont=ui->textEdit->font();
currFont.setPointSize(ui->textEdit->font().pointSize()-5);
ui->textEdit->setFont(currFont);
this->updateFontSize();
});
//5. 点击“关于我们”, 弹出一个模态框,在模态框中显示软件说明信息
connect(ui->actionAboutUs,&QAction::triggered,[](){
QDialog aboutUsDia;
aboutUsDia.setWindowTitle("闲事录");
aboutUsDia.resize(300,200);
aboutUsDia.setStyleSheet("background-color:palegreen");
//设置内容
QLabel *l1=new QLabel("闲事录团队",&aboutUsDia);
l1->move(180,80);
l1->setFont(QFont("楷体",14));
l1->setStyleSheet("color:purple");
QLabel *l2=new QLabel("Tel:17669676769",&aboutUsDia);
l2->move(150,170);
l2->setFont(QFont("楷体",14));
l2->setStyleSheet("color:red");
//设置图片
QLabel *l3=new QLabel(&aboutUsDia);
l3->resize(160,160);
l3->setPixmap(QPixmap(":/images/logo"));
l3->setScaledContents(true);
QPushButton *p1=new QPushButton("关闭",&aboutUsDia);
p1->move(50,170);
p1->setSty
没有合适的资源?快使用搜索试试~ 我知道了~
基于 Windows 的记事本简单功能开发及部署发布-迭代2.0
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共17个文件
png:10个
cpp:2个
user:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 5 0 下载量 199 浏览量
2024-05-18
14:45:17
上传
评论
收藏 1.32MB ZIP 举报
温馨提示
基于上篇文章https://blog.csdn.net/m0_67469586/article/details/138630854?spm=1001.2014.3001.5502 源码可以联系我获取。 更新完成以下几个功能: 1.中心部件更改为栅格布局 2.另存为功能: 打开文本保存框,用户选中文件保存时 得到绝对路径。 判断用户选择路径不为空。 得到用户输入内容。 创建文件对象,使用只读打开,将内容写入到文件中 3.快捷键的使用 4.保存功能 5.新建 6.打开 7.退出 8.编辑中 复制 剪切 粘贴 撤销 9.自动换行 10.关于我们 关闭按钮 11. 帮助菜单 打开浏览器 12.部署环境 打包文件
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
共 17 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/04d450ac856543bfb4ded289ddde5838_m0_67469586.jpg!1)
菜鸟小白哇啊
- 粉丝: 222
- 资源: 5
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)