qt制作简易记事本

您所在的位置:网站首页 记事本图片手绘 qt制作简易记事本

qt制作简易记事本

2024-01-11 18:19| 来源: 网络整理| 查看: 265

最近在学qt,用qt实现了简易记事本的功能 实现功能如下: 1.新建、打开、保存、另存为、退出; 2.撤销、前进、复制、粘贴、剪切; 3.颜色、字体、下划线、倾斜、黑体的设置; 4.设置居中、左对齐、右对齐; 5.切换记事本背景图片;(ps:部分功能是在Windows现有功能上添加的) 下面是功能截图: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

下面放上完整的源代码: main.cpp

#include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }

mainwindow.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void newfile(); void openfile(); void savefile(); void saveAsfile(); void setColor(); void setWord(); void setUnderline(); void setUndo(); void setRedo(); void copy(); void paste(); void cut(); void setLift(); void setRight(); void setMiddle(); void setItalic(); void setBold(); void setbackground(); private: Ui::MainWindow *ui; QString filename; QString m_image[6]; int i; }; #endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->actionUnderline->setCheckable(true); ui->actionItalic->setCheckable(true); ui->actionBold->setCheckable(true); filename=QString::fromLocal8Bit("无标题.txt"); this->setWindowTitle(filename+QString::fromLocal8Bit("-记事本")); this->resize(800,600); QPalette pal(this->palette()); pal.setColor(QPalette::Background,Qt::yellow); this->setPalette(pal);i=0; m_image[0]=":/images/1.jpg"; m_image[1]=":/images/2.jpg"; m_image[2]=":/images/3.jpg"; m_image[3]=":/images/4.jpg"; m_image[4]=":/images/5.jpg"; m_image[5]=":/images/6.jpg"; //QString str=QDateTime::currentDateTime().toString("hh:mm:ss yyyy/MM/dd"); // ui->textEdit->insertPlainText(str); //添加动作按钮 ui->actionNew->setStatusTip(QString::fromLocal8Bit("新建文件")); ui->actionOpen->setStatusTip(QString::fromLocal8Bit("打开文件")); ui->actionSave->setStatusTip(QString::fromLocal8Bit("保存文件")); ui->actionSaveAs->setStatusTip(QString::fromLocal8Bit("另存为")); ui->actionExit->setStatusTip(QString::fromLocal8Bit("退出")); ui->actionColour->setStatusTip(QString::fromLocal8Bit("颜色设置")); ui->actionWordtype->setStatusTip(QString::fromLocal8Bit("字体设置")); ui->actionUndo->setStatusTip(QString::fromLocal8Bit("撤销")); ui->actionRedo->setStatusTip(QString::fromLocal8Bit("前进")); ui->actionPaste->setStatusTip(QString::fromLocal8Bit("粘贴")); ui->actionCopy->setStatusTip(QString::fromLocal8Bit("复制")); ui->actionCut->setStatusTip(QString::fromLocal8Bit("剪切")); ui->actionSearch->setStatusTip(QString::fromLocal8Bit("查找")); ui->mainToolBar->addAction(ui->actionNew); ui->mainToolBar->addAction(ui->actionOpen); ui->mainToolBar->addAction(ui->actionSave); ui->mainToolBar->addAction(ui->actionColour); ui->mainToolBar->addAction(ui->actionPaste); ui->mainToolBar->addAction(ui->actionCopy); ui->mainToolBar->addAction(ui->actionCut); connect (ui->actionNew,SIGNAL(triggered(bool)),this,SLOT(newfile())); connect (ui->actionOpen,SIGNAL(triggered(bool)),this,SLOT(openfile())); connect(ui->actionExit,SIGNAL(triggered(bool)),this,SLOT(close())); connect(ui->actionSave,SIGNAL(triggered(bool)),this,SLOT(savefile())); connect(ui->actionSaveAs,SIGNAL(triggered(bool)),this,SLOT(saveAsfile())); connect(ui->actionColour,SIGNAL(triggered(bool)),this,SLOT(setColor())); connect(ui->actionWordtype,SIGNAL(triggered(bool)),this,SLOT(setWord())); connect(ui->actionUnderline,SIGNAL(triggered(bool)),this,SLOT(setUnderline())); connect(ui->actionUndo,SIGNAL(triggered(bool)),this,SLOT(setUndo())); connect(ui->actionRedo,SIGNAL(triggered(bool)),this,SLOT(setRedo())); connect(ui->actionCopy,SIGNAL(triggered(bool)),this,SLOT(copy())); connect(ui->actionPaste,SIGNAL(triggered(bool)),this,SLOT(paste())); connect(ui->actionCut,SIGNAL(triggered(bool)),this,SLOT(cut())); connect(ui->actionLift,SIGNAL(triggered(bool)),this,SLOT(setLift())); connect(ui->actionRight,SIGNAL(triggered(bool)),this,SLOT(setRight())); connect(ui->actionMiddle,SIGNAL(triggered(bool)),this,SLOT(setMiddle())); connect(ui->actionItalic,SIGNAL(triggered(bool)),this,SLOT(setItalic())); connect(ui->actionBold,SIGNAL(triggered(bool)),this,SLOT(setBold())); connect(ui->actionSearch,SIGNAL(triggered(bool)),this,SLOT(search())); connect(ui->actionNext,SIGNAL(triggered(bool)),this,SLOT(setbackground())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::newfile() { this->setWindowTitle(QString::fromLocal8Bit("新建文件")); ui->textEdit->clear(); } void MainWindow::openfile() { filename=QFileDialog::getOpenFileName(this,"open file","./","text file(*.txt)"); if(false==filename.isEmpty()) { QFile file(filename); bool ok = file.open(QIODevice::ReadOnly); if(ok==true) { QByteArray arr =file.readAll(); ui->textEdit->setText(QString(arr)); file.close(); QFileInfo info(filename); QString str=info.fileName(); this->setWindowTitle(str); } } } void MainWindow::savefile() { if(filename.isEmpty()==true)//判断打开的文件是否为空,如果是空就是保存新建文件。 { QString filter="ext file(*.txt)"; QString selefilter="Text file(*.txt)"; filename=QFileDialog::getSaveFileName(this,"save file",QDir::currentPath(),filter,&selefilter); } QFile file(filename);//非空则打开的是已存在的文件,直接保存就可以。 /*if(!file.open(QIODevice::WriteOnly|QFile::Text)) { QMessageBox::warning(this,"警告","无法打开文件:"+file.errorString()); return; } setWindowTitle(filename); QTextStream out(&file); QString text =ui->textEdit->toPlainText(); out QString filter="ext file(*.txt)"; QString selefilter="Text file(*.txt)"; filename = QFileDialog::getSaveFileName(this,"saveAs file",QDir::currentPath(),filter,&selefilter); QFile file(filename); /* if(!file.open(QIODevice::WriteOnly|QFile::Text)) { QMessageBox::warning(this,"警告","无法打开文件:"+file.errorString()); return; } setWindowTitle(filename); QTextStream out(&file); QString text=ui->textEdit->toPlainText(); out QColor color=QColorDialog::getColor (Qt::red,Q_NULLPTR,"set textcolor",QColorDialog::DontUseNativeDialog); ui->textEdit->setTextColor(color); } void MainWindow::setWord() { bool ok; QFont f=ui->textEdit->font(); QFont font=QFontDialog::getFont(&ok,f,Q_NULLPTR,"set worldtype"); if(ok) { ui->textEdit->setFont(font); } else { qDebug() QTextCharFormat tcf; tcf.setFontItalic(ui->actionItalic->isChecked()); ui->textEdit->mergeCurrentCharFormat(tcf); } void MainWindow::setBold() { QTextCharFormat tcf; tcf.setFontWeight(ui->actionBold->isChecked() ? QFont::Bold:QFont::Normal); ui->textEdit->mergeCurrentCharFormat(tcf); } void MainWindow::setUndo() { ui->textEdit->undo(); } void MainWindow::setRedo() { ui->textEdit->redo(); } void MainWindow::copy() { ui->textEdit->copy(); } void MainWindow::paste() { ui->textEdit->paste(); } void MainWindow::cut() { ui->textEdit->cut(); } void MainWindow::setLift() { ui->textEdit->setAlignment(Qt::AlignLeft); } void MainWindow::setRight() { ui->textEdit->setAlignment(Qt::AlignRight); } void MainWindow::setMiddle() { ui->textEdit->setAlignment(Qt::AlignCenter); } void MainWindow::setbackground() { if(i==6) i=0; QPalette pal = ui->textEdit->palette(); pal.setBrush(QPalette::Base,QPixmap(m_image[i]).scaled(ui->textEdit->size())); //pal.setBrush(QPalette::Base,Qt::red); ui->textEdit->setAutoFillBackground(true); ui->textEdit->setPalette(pal); i++; }

点击背景下的next就可以切换自己预设的背景照片啦! 下面是效果图: 在这里插入图片描述 制作不易,喜欢的大家给个赞点个关注啦!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3