博客
关于我
Qt 简易计算器小程序
阅读量:315 次
发布时间:2019-03-03

本文共 2708 字,大约阅读时间需要 9 分钟。

刚接触Qt,没有使用QtDesigner来编写ui文件,纯vs编写

calculator.h与calculator.cpp由自己编写,main.cpp与ui_calculator.h由vs生成

calculator.h

#pragma once#pragma execution_character_set("utf-8")#include 
#include "ui_calculator.h"#include
#include
#include
#include
#include
#include
class calculator : public QMainWindow{ Q_OBJECTpublic: calculator(QWidget *parent = Q_NULLPTR);public slots : void jisuan();private: Ui::calculatorClass ui; QLabel *number_1; QLabel *number_2; QLineEdit *numline_1; QLineEdit *numline_2; QButtonGroup *oper; QRadioButton *plus; QRadioButton *minus; QRadioButton *multiply; QRadioButton *divide; QLabel *resultlabel; QLineEdit *result; QPushButton *cal; QGridLayout *mainlayout;};

calculator.cpp

#include "calculator.h"calculator::calculator(QWidget *parent)	: QMainWindow(parent){	ui.setupUi(this);	number_1 = new QLabel("数字1:");	number_2 = new QLabel("数字2:");	numline_1 = new QLineEdit;	numline_2 = new QLineEdit;	QRegExp regx("[0-9]+$");	QValidator *validator = new QRegExpValidator(regx);	numline_1->setValidator(validator);	numline_2->setValidator(validator);//限制输入的为数字	oper = new QButtonGroup;	plus = new QRadioButton("+");	minus = new QRadioButton("-");	multiply = new QRadioButton("*");	divide = new QRadioButton("/");	oper->addButton(plus);	oper->addButton(minus);	oper->addButton(multiply);	oper->addButton(divide);	oper->setExclusive(true);	resultlabel = new QLabel("计算结果:");	result = new QLineEdit;	cal = new QPushButton("计算");	cal->setShortcut(QKeySequence(QLatin1String("Enter")));	mainlayout = new QGridLayout(ui.centralWidget);	mainlayout->addWidget(number_1, 0, 0);	mainlayout->addWidget(numline_1, 0, 1,1,3);	mainlayout->addWidget(number_2, 1, 0);	mainlayout->addWidget(numline_2, 1, 1,1,3);	mainlayout->addWidget(plus,2,0);	mainlayout->addWidget(minus, 2, 1);	mainlayout->addWidget(multiply, 2, 2);	mainlayout->addWidget(divide, 2, 3);	mainlayout->addWidget(cal, 3, 0,1,4);	mainlayout->addWidget(resultlabel, 4, 0);	mainlayout->addWidget(result, 4, 1,1,3);		connect(cal, SIGNAL(clicked()), this, SLOT(jisuan()));	}void calculator::jisuan(){	QString n1 = numline_1->text();	QString n2 = numline_2->text();	double num1 = n1.toDouble();	double num2 = n2.toDouble();	double res = 0.0;	if (plus->isChecked())	{		res = num1 + num2;	}	if (minus->isChecked())	{		res = num1 - num2;	}	if (multiply->isChecked())	{		res = num1 * num2;	}	if (divide->isChecked())	{		res = num1 / num2;	}	QRegExp rx;	rx.setPattern("(\\.){0,1}0+$");	QString res2= QString("%1").arg(res, 0, 'f', -1).replace(rx, "");	//使用正则表达式去除小数后多余的0	result->setText(res2);	if (divide->isChecked() && num2 == 0)	{		result->setText("Error");	}}

效果如图

在这里插入图片描述

转载地址:http://apdq.baihongyu.com/

你可能感兴趣的文章
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>