QT如何实现简单计算器功能
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要讲解了"QT如何实现简单计算器功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT如何实现简单计算器功能"吧!效果图:新建工程,创建类M
千家信息网最后更新 2025年11月11日QT如何实现简单计算器功能
这篇文章主要讲解了"QT如何实现简单计算器功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT如何实现简单计算器功能"吧!
效果图:
新建工程,创建类MainWindow,基类是QMainWindow,声明变量和函数、槽
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H #include#include #include class MainWindow : public QMainWindow{ Q_OBJECTprotected: int num1,num2,result; //标记第一个数,第二个数和结果 int operat; //运算符号 int operat_flag;//标记是否输入符号 QLineEdit *data; QPushButton *button_0; QPushButton *button_1; QPushButton *button_2; QPushButton *button_3; QPushButton *button_4; QPushButton *button_5; QPushButton *button_6; QPushButton *button_7; QPushButton *button_8; QPushButton *button_9; QPushButton *button_ce; QPushButton *button_jia; QPushButton *button_jian; QPushButton *button_cheng; QPushButton *button_chu; QPushButton *button_result; QString s; public: MainWindow(QWidget *parent = 0); ~MainWindow(); public: void myLayout(); void operation(); void readNum(int num); void init_data();private slots: void button_0_clicked(); void button_1_clicked(); void button_2_clicked(); void button_3_clicked(); void button_4_clicked(); void button_5_clicked(); void button_6_clicked(); void button_7_clicked(); void button_8_clicked(); void button_9_clicked(); void button_ce_clicked(); void button_result_clicked(); void button_cheng_clicked(); void button_chu_clicked(); void button_jia_clicked(); void button_jian_clicked();}; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"#include#include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){} void MainWindow::myLayout(){ QWidget *centerWindow = new QWidget; this->setCentralWidget(centerWindow); s = ""; init_data(); data = new QLineEdit(""); button_0 = new QPushButton("0"); button_1 = new QPushButton("1"); button_2 = new QPushButton("2"); button_3 = new QPushButton("3"); button_4 = new QPushButton("4"); button_5 = new QPushButton("5"); button_6 = new QPushButton("6"); button_7 = new QPushButton("7"); button_8 = new QPushButton("8"); button_9 = new QPushButton("9"); button_ce = new QPushButton("CE"); button_jia = new QPushButton("+"); button_jian = new QPushButton("-"); button_cheng = new QPushButton("*"); button_chu = new QPushButton("/"); button_result = new QPushButton("="); data->setFixedHeight(30); button_0->setMinimumHeight(50); button_1->setMinimumHeight(50); button_2->setMinimumHeight(50); button_3->setMinimumHeight(50); button_4->setMinimumHeight(50); button_5->setMinimumHeight(50); button_6->setMinimumHeight(50); button_7->setMinimumHeight(50); button_8->setMinimumHeight(50); button_9->setMinimumHeight(50); button_ce->setMinimumHeight(50); button_jia->setMinimumHeight(50); button_jian->setMinimumHeight(50); button_cheng->setMinimumHeight(50); button_chu->setMinimumHeight(50); button_result->setMinimumHeight(50); //连接信号 connect(button_0,SIGNAL(clicked(bool)),this,SLOT(button_0_clicked())); connect(button_1,SIGNAL(clicked(bool)),this,SLOT(button_1_clicked())); connect(button_2,SIGNAL(clicked(bool)),this,SLOT(button_2_clicked())); connect(button_3,SIGNAL(clicked(bool)),this,SLOT(button_3_clicked())); connect(button_4,SIGNAL(clicked(bool)),this,SLOT(button_4_clicked())); connect(button_5,SIGNAL(clicked(bool)),this,SLOT(button_5_clicked())); connect(button_6,SIGNAL(clicked(bool)),this,SLOT(button_6_clicked())); connect(button_7,SIGNAL(clicked(bool)),this,SLOT(button_7_clicked())); connect(button_8,SIGNAL(clicked(bool)),this,SLOT(button_8_clicked())); connect(button_9,SIGNAL(clicked(bool)),this,SLOT(button_9_clicked())); connect(button_jia,SIGNAL(clicked(bool)),this,SLOT(button_jia_clicked())); connect(button_jian,SIGNAL(clicked(bool)),this,SLOT(button_jian_clicked())); connect(button_cheng,SIGNAL(clicked(bool)),this,SLOT(button_cheng_clicked())); connect(button_chu,SIGNAL(clicked(bool)),this,SLOT(button_chu_clicked())); connect(button_ce,SIGNAL(clicked(bool)),this,SLOT(button_ce_clicked())); connect(button_result,SIGNAL(clicked(bool)),this,SLOT(button_result_clicked())); QGridLayout * layout = new QGridLayout; layout->addWidget(data,1,1,1,4,Qt::Alignment()); layout->addWidget(button_1,2,1,Qt::Alignment()); layout->addWidget(button_2,2,2,Qt::Alignment()); layout->addWidget(button_3,2,3,Qt::Alignment()); layout->addWidget(button_jia,2,4,Qt::Alignment()); layout->addWidget(button_4,3,1,Qt::Alignment()); layout->addWidget(button_5,3,2,Qt::Alignment()); layout->addWidget(button_6,3,3,Qt::Alignment()); layout->addWidget(button_jian,3,4,Qt::Alignment()); layout->addWidget(button_7,4,1,Qt::Alignment()); layout->addWidget(button_8,4,2,Qt::Alignment()); layout->addWidget(button_9,4,3,Qt::Alignment()); layout->addWidget(button_cheng,4,4,Qt::Alignment()); layout->addWidget(button_ce,5,1,Qt::Alignment()); layout->addWidget(button_0,5,2,Qt::Alignment()); layout->addWidget(button_result,5,3,Qt::Alignment()); layout->addWidget(button_chu,5,4,Qt::Alignment()); layout->setMargin(12); centerWindow->setLayout(layout);} MainWindow::~MainWindow(){ } void MainWindow::init_data(){ num1 = 0; num2 = 0; operat_flag = 0;} void MainWindow::readNum(int num){ //如果是第一个操作数 if(operat_flag == 0){ num1 = num1 * 10 + num; } //如果是第二个操作数 else{ num2 = num2 * 10 + num; }} void MainWindow::operation(){ switch(operat){ case 1: result = num1 + num2; break; case 2: result = num1 - num2; break; case 3: result = num1 * num2; break; case 4: result = num1 / num2; break; } //把结果存到num1中,清零num2 num1 = result; num2 = 0; s = QString::number(result,10);} void MainWindow::button_0_clicked(){ s += "0"; data->setText(s); readNum(0);} void MainWindow::button_1_clicked(){ s += "1"; data->setText(s); readNum(1);} void MainWindow::button_2_clicked(){ s += "2"; data->setText(s); readNum(2);} void MainWindow::button_3_clicked(){ s += "3"; data->setText(s); readNum(3);} void MainWindow::button_4_clicked(){ s += "4"; data->setText(s); readNum(4);} void MainWindow::button_5_clicked(){ s += "5"; data->setText(s); readNum(5);} void MainWindow::button_6_clicked(){ s += "6"; data->setText(s); readNum(6);} void MainWindow::button_7_clicked(){ s += "7"; data->setText(s); readNum(7);} void MainWindow::button_8_clicked(){ s += "8"; data->setText(s); readNum(8);} void MainWindow::button_9_clicked(){ s += "9"; data->setText(s); readNum(9);} void MainWindow::button_ce_clicked(){ s = ""; data->setText(""); //初始化数据 init_data();} void MainWindow::button_jia_clicked(){ s += "+"; data->setText(s); operat_flag = 1; operat = 1;} void MainWindow::button_jian_clicked(){ s += "-"; data->setText(s); operat_flag = 1; operat = 2;} void MainWindow::button_cheng_clicked(){ s += "*"; data->setText(s); operat_flag = 1; operat = 3;} void MainWindow::button_chu_clicked(){ s += "/"; data->setText(s); operat_flag = 1; operat = 4;} void MainWindow::button_result_clicked(){ operation(); QString a = QString::number(result,10); data->setText(a);}
main.cpp
#include "mainwindow.h"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); w.setFixedSize(400,300); w.setWindowTitle("计算器"); w.myLayout(); return a.exec();}
演示:
99*100=
结果
继续计算/99
感谢各位的阅读,以上就是"QT如何实现简单计算器功能"的内容了,经过本文的学习后,相信大家对QT如何实现简单计算器功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
计算器
功能
结果
学习
个数
内容
操作数
标记
符号
信号
函数
变量
就是
工程
思路
情况
效果
效果图
数据
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网站服务器搬迁后怎么样
西城区网络软件开发口碑推荐
网络安全法进校园宣传
海信校招软件开发工资
电信服务器备案
软件开发的规范及标准
网络安全教程源代码
爱享互联网科技公司
国家网络安全简单图片大全
虚拟主机导入psc数据库
罗源租房软件开发
数据库系统由 组成
手机设置服务器地址及端口号
数据库常用语言
mysql数据库建表授权
萌新服主如何建造服务器
flask网络安全
戴尔服务器 灯闪烁
太原服务器回收免费咨询
qq怎么传文件到服务器
软件开发选择题题库
公司代理服务器域名怎么查询
手机添加代理服务器
青岛金山云网络技术公司电话
网络安全能应用到哪方面
打开就能用的数据库
终端网络安全管理规范
戴尔服务器 灯闪烁
关注海运行业的网络安全
河北手机软件开发销售价格