QT简易加法计算器项目实现

这篇具有很好参考价值的文章主要介绍了QT简易加法计算器项目实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完整代码见GitHub:点击进入

在该项目中,使用了三个文件,分别是CalculatorDialog.h, CalculatorDialog.cpp, main.cpp

  • CalculatorDialog.h:在该头文件里定义了一些成员变量和槽函数,用于实现计算器基本功能。
  • CalculatorDialog.cpp:CalculatorDialog类的构造函数,用于初始化计算器对话框界面和控件。
  • main.cpp:Qt应用程序的入口。

CalculatorDialog.h

1. 在这个文件中首先使用了#ifndef#define,用于防止头文件被重复包含,如果头文件已经被包含,则__CALCULATORDIALOG_H宏将已经被定义,#ifndef指令将会跳过后续的代码。

#ifndef __CALCULATORDIALOG_H
#define __CALCULATORDIALOG_H


#endif // __CALCULATORDIALOG_H

2. 加入了一些#include头文件,这些头文件包含Qt框架提供的头文件,例如本程序中的#include。

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QLineEdit> // 行编辑控件
#include <QHBoxLayout> // 水平布局器
#include <QDoubleValidator> // 验证器
  • #include <QDialog>:Qt中的对话框类,用于创建一个窗口化的用户界面。
  • #include <QLabel>:Qt中的标签类,用于显示文本或图像等静态信息。
  • #include <QPushButton>:Qt中的按钮类,用于触发动作或操作。
  • #include <QLineEdit>:Qt中的行编辑类,用于行输入和编辑文本。
  • #include <QHBoxLayout>:Qt中的水平布局器类,用于自动将控件按照水平方向排列。
  • #include <QDoubleValidator>:Qt中的验证器类,用于验证输入数据是否为合法数据。

3. 定义了一个CalculatorDialog类,并且继承于QDialog,这个类可以理解为计算器对话框。

class CalculatorDialog:public QDialog {

};

4. 定义了一个构造函数

  • CalculatorDialog(void):用于初始化界面和控件。

5. 定义了两个槽函数:

  • void enableButton(void):用于检查左右操作数是否有输入,有输入就启用等于按钮。
  • void calcClicked(void):用于计算左右操作数的和并将结果在输出框中显示
public:
	CalculatorDialog(void);
public slots:
	// 使能等号按钮的槽操作数
	void enableButton(void);
	// 计算结果和显示的槽函数
	void calcClicked(void);

6. 定义了五个指针:

  • QLineEdit* m_editX:指向左操作数的指针
  • QLineEdit* m_editY:指向右操作数的指针
  • QLineEdit* m_editZ:指向结果输出框的指针
  • QLabel* m_label:指向“+”标签的指针
  • QPushButton* m_button:指向“=”按钮的指针
private:
	QLineEdit* m_editX; // 左操作数
	QLineEdit* m_editY; // 右操作数
	QLineEdit* m_editZ; // 显示结果
	QLabel* m_label; // "+"
	QPushButton* m_button; // "="

7. 定义了一个Q_OBJECT宏,用于QT元对象编译器(moc)自动生成代码,以支持Qt的信号和槽机制。(是QT信号和槽的必要条件)

	Q_OBJECT // moc

完整代码见GitHub。

CalculatorDialog.cpp

1. 在该文件中CalculatorDialog类中的构造函数和两个槽函数enableButton()calcClicked(),并且定义了头文件#include "CalculatorDialog.h"。

#include "CalculatorDialog.h"

// 构造函数
CalculatorDialog::CalculatorDialog(void) {

}

// 使能等号按钮的槽操作数
void CalculatorDialog::enableButton(void) {

}

// 计算结果和显示的槽函数
void CalculatorDialog::calcClicked(void) {

}

实现构造函数CalculatorDialog::CalculatorDialog(void)。

2. 设置窗口标题(这个可有可无咯。

	setWindowTitle("加法计算器"); // 设置窗口标题

3. 对左操作数分别进行创建对象,文本右对齐和验证数据是否合法操作,右操作数同样如此。

	// 左操作数, this即为当前父窗口指针
	m_editX = new QLineEdit(this);
	// 设置文本对齐:右对齐
	m_editX->setAlignment(Qt::AlignRight);
	// 设置数字验证器	
	m_editX->setValidator(new QDoubleValidator(this));
	// 右操作数
	m_editY = new QLineEdit(this);
	m_editY->setAlignment(Qt::AlignRight);
	m_editY->setValidator(new QDoubleValidator(this));

4. 对结果操作数则分别进行创建对象,文本右对齐和显示结果操作。

	// 显示结果
	m_editZ = new QLineEdit(this);
	m_editZ->setAlignment(Qt::AlignRight);
	m_editZ->setReadOnly(true);

5. 分别创建“+”和“=”对象,并且将“=”按钮设置为禁用(在没有输入数据之前,设置为禁用)。

	// "+"
	m_label = new QLabel("+", this);

	// "="
	m_button = new QPushButton("=", this);
	m_button->setEnabled(false);

6. 创建布局器,并让这些对象自动调整位置和大小。

	// 创建布局器:自动调整每个控件大小位置
	QHBoxLayout* layout = new QHBoxLayout(this);
	// 按水平方向,依次将控件添加到布局器中
	layout->addWidget(m_editX);
	layout->addWidget(m_label);
	layout->addWidget(m_editY);
	layout->addWidget(m_button);
	layout->addWidget(m_editZ);
	// 设置布局器
	setLayout(layout);

7. 信号和槽连接,使得左右操作数文本改变时发送信号textChanged(),点击按钮,发送信号clicked()。

	// 信号和槽函数连接
	// 左右操作数文本改变时,发送信号textChanged()
	connect(m_editX, SIGNAL(textChanged(QString)),
		this, SLOT(enableButton(void)));
	connect(m_editY, SIGNAL(textChanged(QString)),
        this, SLOT(enableButton(void)));
	// 点击按钮,发送信号clicked
	connect(m_button, SIGNAL(clicked(void)), 
		this, SLOT(calcClicked(void)));

实现槽函数void CalculatorDialog::enableButton(void),两个左右操作数改变时,发送信号textChanged给该函数。

8. 定义两个bool类型,用来判断左右两个操作数文本是否改变,若改变,使等号按钮开启。

	bool bXok, bYok;
	// text():获取输入文本(QString)
	// toDouble():QString转换为double, 参数保存转为是否成功结果
	m_editX->text().toDouble(&bXok);
	m_editX->text().toDouble(&bYok);
	// 当左右操作数都输入了有效数据,则使能等号按钮,否则设置禁用
	m_button->setEnabled(bXok && bYok);

实现槽函数void CalculatorDialog::calcClicked(void),按钮点击时,发送信号clicked()给该函数。

9. 计算结果并显示数据。

	double res = m_editX->text().toDouble() + m_editY->text().toDouble();
	// number():将double转换为QString
	QString str = QString::number(res);
	// 显示字符串形式结果
	m_editZ->setText(str);

完整代码见GitHub。

main.cpp

该文件是程序的入口

1. 定义了头文件#include <QApplication>,是一个Qt库中的核心类,它封装了整个应用程序的控制对象,在Qt应用程序中,通常需要创建一个QApplication对象,作为程序的主要控制对象,然后在这个对象上执行各种操作,所以需要定义这个头文件。还有CalculatorDialog类的头文件不用多说。

#include <QApplication>
#include "CalculatorDialog.h"

2. int main主函数,并且创建一个QApplication对象作为整个程序的控制对象,最后return app.exec():启动Qt库的事件循环,并等待用户输入和系统事件的发生。

int main(int argc, char** argv) {
	QApplication app(argc, argv);

	return app.exec();

}

3. 创建一个CalculatorDialog对象,即计算器对话框窗口,并将计算器对话框窗口显示出来。

	CalculatorDialog calc;
	calc.show();

完整代码见GitHub。

开始编译qt程序:

  • qmake -project:生成Qt项目文件
  • 就需要在项目文件(.pro文件)中添加QT += widgets这一行。
  • qmake
  • make

成功得到计算器的程序了。 

QT简易加法计算器项目实现,Qt学习,qt,开发语言

本次实验结束,欢迎在评论区反馈结果!!!文章来源地址https://www.toymoban.com/news/detail-516414.html

到了这里,关于QT简易加法计算器项目实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT实现简单计算器(附源码)

    作为qt初学者,自己做一个简单计算器是比较普遍的练习题,使用widget方式实现一个简单的计算器功能。 使用Push Button组件将ui界面布局 显示界面使用Line Edit组件 将各个组件槽函数关联 等于符号的槽函数(进行加减乘除运算) 成功调试

    2024年02月12日
    浏览(38)
  • 【python】软件开发——PyQt5、Qt Designer、信号与槽机制、计算器实现

    PyQt5 是一个基于 Python 的 GUI 框架,用于创建跨平台的桌面应用程序。它是 Qt 库的 Python 绑定,结合了 Python 的简洁和易用性以及 Qt 框架的强大功能。 Qt 是一个流行的 C++ 跨平台应用程序开发框架,提供了丰富的图形界面组件、网络通信、数据库访问、多线程等功能。PyQt5 允许

    2024年02月04日
    浏览(44)
  • Qt制作计算器

    运用数据队列中的栈知识,使用Qt制作简易的计算器 ①支持中缀表达式的基本四则运算 ②支持软(软件自带键盘),硬(实体键盘)键盘均可操作,并且按键时触发小特效 ③支持查看历史记录 将用户输入的表达式分解为 运算符 和 操作数 两类 运算符:\\\"+\\\", \\\"-\\\", \\\"*\\\", \\\"/\\\", \\\"(\\\", \\\")\\\" 操

    2024年02月08日
    浏览(79)
  • Qt编写简单计算器

    一、使用LCD Number、Push Button和GridLayout编辑计算器页面。  二、代码 widget.h main.cpp widget.cpp

    2024年02月12日
    浏览(40)
  • 【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

    本篇博客主要内容: 理解前后端交互过程 接⼝传参,数据返回,以及⻚⾯展⽰ 需求:输⼊两个整数,点击\\\"点击相加\\\"按钮,显⽰计算结果 效果展示如下: 具体实现步骤,博主大致分为以下几步: 准备工作 约定前后端交互接⼝ 后端服务器代码的书写 创建SpringBoot项⽬: 引⼊Spring Web依

    2024年01月17日
    浏览(53)
  • C++简易计算器的实现

    定义: 计算器是近代人发明的可以进行数字运算的机器。 也就是说,计算器不等同于算盘,前者能自行运算,后者只能简便计算过程,在古代,人们发明了许多计算工具,如算筹、算盘、计算尺等,随着社会的发展和科技的进步,计算工具也经历了由简单到复杂,由低级向高级的发

    2024年02月11日
    浏览(43)
  • Java课设-百行代码实现简易计算器

    Java程序设计 工程实践 ——简易计算器的设计 院、 系 计算机与软件学院 专业 信息安全 姓 名 指导教师 2022年 6 月 11 日 目录: 一、 设计简介 2 1、 设计背景 2 2、 开发工具及环境 2 (1)开发工具及介绍 2 (2)开发环境 2 二、 相关工作 2 1、设计基础 2 2、功能需求 2 3、系统

    2024年02月04日
    浏览(75)
  • Android开发:kotlin语言实现简易计算器

    输入两个数字,可选加减乘除操作符,并计算显示对应结果 随系统切换语言 可对结果进行四舍五入操作 界面布局:activity_main.xml文件代码 字符定义:string.xml文件代码 逻辑实现:MainActivity.kt 文件代码 方法一(偷懒): 复制文件到对应位置 方法二: 1. 绘制界面 2. 编写逻辑

    2023年04月08日
    浏览(48)
  • JAVA课程设计——GUI实现简易计算器

    一.设计任务及要求 任务:设计并实现一个计算器小程序 要求: 使用图形用户界面 能在键盘或鼠标上读入数据,并完成加,减,乘,除计算。 在屏幕上显示一个主菜单。 提示用户输入相应的数字键,分别执行加,减,乘,除计算功能和结束程序的功能。 二.需求分析: ​ 计算

    2024年02月12日
    浏览(43)
  • 【简单】使用ChatGPT和QT从零开始构建一个计算器应用

    在这篇博文中,我将向大家展示如何使用ChatGPT和Qt来构建一个完整的计算器应用。我们将从零开始,逐步引导您完成整个项目,包括需求分析、软件设计、代码编写等环节。该项目代码全部由GPT编写,10分钟完成。 本项目旨在使用ChatGPT和Qt技术构建一个功能完备的计算器应用。

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包