qt实现一个简易的计算器

您所在的位置:网站首页 qt设计页面左边没了 qt实现一个简易的计算器

qt实现一个简易的计算器

2023-04-01 04:58| 来源: 网络整理| 查看: 265

一、下载qt

下载地址:http://download.qt.io/archive/qt/

下载安装教程:https://blog.csdn.net/cfan927/article/details/98115783?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&depth_1-utm_source=distribute.pc_releva

二、学习qt

这里推荐一个博主让你熟练qt基本的操作

B站链接:斧头帮-帮主的个人空间_哔哩哔哩_bilibili

三、实现界面设计 

新建项目后点击红色圈出来的部分进行设计 

 

进入设计页面后,左侧会有各种控件,可以将他们拖拽到你想编辑的窗口中,我们要做的是计算器,所以只用到很少几个控件,这里我的按键我用到的是Push Button,显示界面则是LCD Number。如果想要了解其他的控件的功能可以通过教学视频慢慢了解。

 

 

 强拖过来后我们对Push Button进行编辑,QT的优点在于图形界面的设计很简单,将各种控件拖拽后会在上述ui文件中自动生成代码,拖拽到窗口的控件可以手动调整它的大小和位置,并且它的位置会在一个整数的位置自动对齐。如果还需要设计别的就可以自行设计,如下:

 

四、代码的实现  1、widget.h #ifndef WIDGET_H #define WIDGET_H #include //枚举表示运算类型 enum oper{ oper_jia, oper_jian, oper_cheng, oper_chu, }; namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_btn1_clicked(); void on_btn2_clicked(); void on_btn3_clicked(); void on_btn4_clicked(); void on_btn5_clicked(); void on_btn6_clicked(); void on_btn7_clicked(); void on_btn8_clicked(); void on_btn9_clicked(); void on_btnjia_clicked(); void on_btn0_clicked(); void on_btncheng_clicked(); void on_btnqing_clicked(); void on_btnjian_clicked(); void on_btnchu_clicked(); void on_btndeng_clicked(); void on_pushButton_clicked(); private: Ui::Widget *ui; // 记录当前值 float num; //上一个操作数 int temp; //记录当前运算 oper op; }; #endif // WIDGET_H 2、widget.cpp #include "widget.h" #include "ui_widget.h" #include "QMessageBox" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); //初始化自定义操作 num = 0; temp = 0; } Widget::~Widget() { delete ui; } void Widget::on_btn1_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn2_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn3_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn4_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn5_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn6_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn7_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn8_clicked() { if(numlcdNumber->display(num); } void Widget::on_btn9_clicked() { if(numlcdNumber->display(num); } void Widget::on_btnjia_clicked() { // 如果temp不为0,则要计算前面的运算 if(temp>0) { //计算已经存在的运算 on_btndeng_clicked(); } //记录加法的运算结果 op = oper_jia; //当前值为第一操作数 temp = num; //num清0 num = 0; } void Widget::on_btn0_clicked() { if(numlcdNumber->display(num); } void Widget::on_btncheng_clicked() { // 如果temp不为0,则要计算前面的运算 if(temp>0) { //计算已经存在的运算 on_btndeng_clicked(); } //记录加法的运算结果 op = oper_cheng; //当前值为第一操作数 temp = num; //num清0 num = 0; } void Widget::on_btnqing_clicked() { { num = 0; temp = 0; ui->lcdNumber->display(num); } } void Widget::on_btnjian_clicked() { // 如果temp不为0,则要计算前面的运算 if(temp>0) { //计算已经存在的运算 on_btndeng_clicked(); } //记录加法的运算结果 op = oper_jian; //当前值为第一操作数 temp = num; //num清0 num = 0; } void Widget::on_btnchu_clicked() { // 如果temp不为0,则要计算前面的运算 if(temp>0) { //计算已经存在的运算 on_btndeng_clicked(); } //记录加法的运算结果 op = oper_chu; //当前值为第一操作数 temp = num; //num清0 num = 0; } void Widget::on_btndeng_clicked() { switch(op) { case oper_jia: num =temp + num; break; case oper_jian: num =temp - num; break; case oper_cheng: num =temp * num; break; case oper_chu: if(0 == num) { QMessageBox::warning(this,"计算器","除数不能为0!!!"); num = 0; temp = 0; //ui->lcdNumber->display("除数不能为0!!!"); return; } num =temp / num; break; } //操作数清0 temp = 0; if(num > 999999999) { ui->lcdNumber->display("error"); num = 0; } else ui->lcdNumber->display(num); } /*void Widget::on_pushButton_clicked() { num = num*10+.7; ui->lcdNumber->display(num); }*/ 五、项目演示

由于我设计这款不显示运算符号,没办法截图。如需要可自行演示。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3