QT如何实现简单计算器功能
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要讲解了"QT如何实现简单计算器功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT如何实现简单计算器功能"吧!效果图:新建工程,创建类M
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
盗贼之海服务器2020
雀魂 服务器迁移
手工网络安全教育
金薇科技互联网
单机传奇数据库官方最新版
网络安全态势评估软件
宁波宸帆网络技术有限公司
智能购物车的数据库表的设计
网络安全教育查摆剖析材料
移动数据库的最新应用技术
手机软件开发属于什么职业
存放在别人服务器的数据能移动吗
电脑怎么加入手机mc服务器
海淀区网络安全部门
修改数据库的同时修改备份
合肥项目管理软件开发
网络安全和后端
关于学校网络安全教育的工作
轻量服务器在哪里管理
java软件开发的好处
国家准入药品数据库
清除游戏云端数据库
惠来app软件开发
基岩版中文服务器推荐
计算机网络安全工程师证书难吗
广西网络技术服务采购
网络安全的几条规则
网络安全咨询规划资质
上海安信网络技术有限公司
网络安全 知识竞答