文档章节

简单记事本和简单四则运算计算器源代码(*.h *.cpp main.cpp)

B_ice
 B_ice
发布于 2016/03/07 09:38
字数 858
阅读 35
收藏 0

记事本代码:

“mainwindow.h”

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include <QMessageBox>

#include <QtDebug>

#include <QFile>

#include <QFileDialog>

#include <QDir>

#include <QTextStream>

#include <QFont>

#include <QFontDialog>

#include <QColor>

#include <QColorDialog>

#include <QDateTime>

#include <QAction>

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

private:

    Ui::MainWindow *ui;

    QString fileName;

private slots:

//    void newFileSlot();

//    void openFileSlot();

void newFileSlot();

void openFileSlot();

void saveFileSlot();

void saveAsFileSlot();

//    void undoSlot();

//    void redoSlot();

//    void copySlot();

//    void cutSlot();

//    void pasteSlot();

//    void seleteAllSlot();

void setFontSlot();

void setColorSlot();

void currentDateTimeSlot();

};

#endif // MAINWINDOW_H

“main.cpp”

#include <QtGui/QApplication>

#include "mainwindow.h"

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w;

    w.show();

return a.exec();

}

“mainwindow.cpp”

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

this->setWindowTitle("Untitled-notepad");

    QObject::connect(ui->newAction,SIGNAL(triggered()),this,SLOT(newFileSlot()));

    QObject::connect(ui->openAction,SIGNAL(triggered()),this,SLOT(openFileSlot()));

    QObject::connect(ui->saveAction,SIGNAL(triggered()),this,SLOT(saveFileSlot()));

    QObject::connect(ui->saveAsAction,SIGNAL(triggered()),this,SLOT(saveAsFileSlot()));

    QObject::connect(ui->exitAction,SIGNAL(triggered()),this,SLOT(close()));

//    QObject::connect(ui->copyAction,SIGNAL(triggered()),this,SLOT(copySlot()));

//    QObject::connect(ui->seleteAllAction,SIGNAL(triggered()),this,SLOT(seleteAllSlot()));

//    QObject::connect(ui->cutAction,SIGNAL(triggered()),this,SLOT(cutSlot()));

//    QObject::connect(ui->pasteAction,SIGNAL(triggered()),this,SLOT(pasteSlot()));

//    QObject::connect(ui->undoAction,SIGNAL(triggered()),this,SLOT(undoSlot()));

//    QObject::connect(ui->redoAction,SIGNAL(triggered()),this,SLOT(redoSlot()));

    QObject::connect(ui->copyAction,SIGNAL(triggered()),ui->textEdit,SLOT(copy()));

    QObject::connect(ui->seleteAllAction,SIGNAL(triggered()),ui->textEdit,SLOT(selectAll()));

    QObject::connect(ui->cutAction,SIGNAL(triggered()),ui->textEdit,SLOT(cut()));

    QObject::connect(ui->pasteAction,SIGNAL(triggered()),ui->textEdit,SLOT(paste()));

    QObject::connect(ui->undoAction,SIGNAL(triggered()),ui->textEdit,SLOT(undo()));

    QObject::connect(ui->redoAction,SIGNAL(triggered()),ui->textEdit,SLOT(redo()));

    QObject::connect(ui->colorAction,SIGNAL(triggered()),this,SLOT(setColorSlot()));

    QObject::connect(ui->FontAction,SIGNAL(triggered()),this,SLOT(setFontSlot()));

    QObject::connect(ui->dateTimeAction,SIGNAL(triggered()),this,SLOT(currentDateTimeSlot()));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::newFileSlot()

{

if (ui->textEdit->document()->isModified())

{

        qDebug() << "current file modified";

}

else

{

        ui->textEdit->clear();

this->setWindowTitle("Untitled.txt");

}

}

void MainWindow::openFileSlot()

{

    fileName = QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());

if (fileName.isEmpty())

{

        QMessageBox::information(this,"ERROR MESSAGE","Please selete a file");

return;

}

    QFile *file = new QFile;

    file->setFileName(fileName);

bool ok = file->open(QIODevice::ReadOnly);

if (ok)

{

        QTextStream in(file);

        ui->textEdit->setText(in.readAll());

        file->close();

delete file;

}

else

{

        QMessageBox::warning(this,"ERROR MESSAGE","File Open FiLE"+file->errorString());

return;

}

}

void MainWindow::saveFileSlot()

{

//QString fileName = ui->textEdit->QDir::currentPath();//QFileDialog::getOpenFileName(this,"Save File",QDir::currentPath());

if (fileName.isEmpty())

{

        saveAsFileSlot();

}

else

{

        QFile *file = new QFile;

        file->setFileName(fileName);

bool ok = file->open(QIODevice::WriteOnly);

if (ok)

{

            QTextStream out(file);

            out << ui->textEdit->toPlainText();

            file->close();

delete file;

}

else

{

            QMessageBox::information(this,"ERROR MESSAGE","save file error");

return;

}

}

}

void MainWindow::saveAsFileSlot()

{

    QString AnotherFileName = QFileDialog::getSaveFileName(this,"save as Another",QDir::currentPath());

if (AnotherFileName.isEmpty())

{

        QMessageBox::warning(this,"ERROR MESSAGE","selete a file");

return;

}

else

{

        QFile *file = new QFile;

        file->setFileName(AnotherFileName);

bool ok = file->open(QIODevice::WriteOnly);

if (ok)

{

            QTextStream out(file);

            out << ui->textEdit->toPlainText();

            file->close();

delete file;

}

else

{

            QMessageBox::warning(this,"ERROR MESSAGE","save file Error");

return;

}

}

}

/*

void MainWindow::undoSlot()

{

    ui->textEdit->undo();

}

void MainWindow::redoSlot()

{

    ui->textEdit->redo();

}

void MainWindow::copySlot()

{

    ui->textEdit->copy();

}

void MainWindow::cutSlot()

{

    ui->textEdit->cut();

}

void MainWindow::pasteSlot()

{

    ui->textEdit->paste();

}

void MainWindow::seleteAllSlot()

{

    ui->textEdit->selectAll();

}

*/

void MainWindow::setFontSlot()

{

bool ok;

    QFont font = QFontDialog::getFont(&ok,this);

if (ok)

{

        ui->textEdit->setFont(font);

}

else

{

        QMessageBox::information(this,"Error Message","Error Set Font!!");

return;

}

}

void MainWindow::setColorSlot()

{

    QColor color = QColorDialog::getColor(Qt::red,this);

if (color.isValid())

{

        ui->textEdit->setTextColor(color);

}

else

{

        QMessageBox::information(this,"Error Message","Color is Unvalid");

return;

}

}

void MainWindow::currentDateTimeSlot()

{

    QDateTime current = QDateTime::currentDateTime();

    QString time = current.toString("yyyy-MM-dd hh:mm:ss");

    ui->textEdit->append(time);

}

四则运算计算器代码:

“mainwindow.h”

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include <QMessageBox>

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

    Q_OBJECT

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

private:

    Ui::MainWindow *ui;

private slots:

void calSlot();

};

#endif // MAINWINDOW_H

“mian.cpp”

#include <QtGui/QApplication>

#include "mainwindow.h"

int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w;

    w.show();

return a.exec();

}

“mainwindow.cpp”

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    QObject::connect(ui->calButton,SIGNAL(clicked()),this,SLOT(calSlot()));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::calSlot()

{

int firth = ui->firstLineEdit->text().toInt();

int second = ui->secondLineEdit->text().toInt();

int result;

if (ui->comboBox->currentIndex() == 0)

{

        result = firth + second;

        ui->resultLineEdit->setText(QString::number(result));

        QMessageBox::information(this,"RESULT:",QString::number(result));

}

else if (ui->comboBox->currentIndex() == 1)

{

        result = firth - second;

        ui->resultLineEdit->setText(QString::number(result));

        QMessageBox::information(this,"RESULT:",QString::number(result));

}

else if (ui->comboBox->currentIndex() == 2)

{

        result = firth * second;

        ui->resultLineEdit->setText(QString::number(result));

        QMessageBox::information(this,"RESULT:",QString::number(result));

}

else

{

if (second == 0)

{

            QMessageBox::warning(this,"ERROR MESSAGE:","secondValue can't be zero!");

return;

}

else

{

            result = firth / second;

            ui->resultLineEdit->setText(QString::number(result));

            QMessageBox::information(this,"RESULT:",QString::number(result));

}

}

}

© 著作权归作者所有

B_ice
粉丝 4
博文 49
码字总数 19470
作品 0
福州
私信 提问
C++中头文件与源文件的作用详解

一、C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件―― .cpp 文件和 .h 文件。其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码;而 .h 文件则被称作 C++ 头文件,里面...

开元中国2015
05/27
11
0
c++中extern "c"的使用

比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。 通常,在C 语言的头文件中经常可以看到类...

colorlesswind
2015/04/13
32
0
C++中头文件、源文件之间的区别与联系

.h头文件和.cpp文件的区别 疑惑1:.h文件能够编写main函数吗? 实验: 编写test.h文件,里面包含main函数 若直接编译g++ test.h -o test,通过file命令 file test,得到如下结果test: GCC p...

风筝Fergus
2013/04/17
5K
2
VC调用matlab函数mclcppMlfFeval重复定义

问题背景: 用mcc -W cpplib:libname -T link:lib -v matlab_m_file.m 编译.m文件,生成vc可用的动态连接库和.h头文件,相关数据.c文件,和一个.cpp文件(m_to_cpp.cpp),该.cpp文件中.h文件...

长平狐
2012/10/08
202
0
C语言/C++编程学习:环境设置

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部