个人博客地址https://gs42.org,点击即可直接阅读全文,QQ交流群:584930947
软件工程的作业,让写一个计算器,为此花两天抽时间看了看Qt入门,然后就开搞了。
环境Qt 5.13.1,MinGw 7.3.0 32-bit,IDE:Qt Creator 4.10.0
新建Qt Widgets 应用,项目名称Calculator,基类选择GWidget,类名MyWidget。
1.首先是页面,直接拖拖拖,没用栅格,先垂直在水平布局了,改了一点参数,解决问题。
2.编写信号和槽,并代码实现计算器功能
mywidget.h 最终更改如下:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <string.h>
#include <stdio.h>
#include <QDialog>
QT_BEGIN_NAMESPACE
namespace Ui { class MyWidget; }
QT_END_NAMESPACE
class QErrorMessage;
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
~MyWidget();
private slots:
void on_pushButtonCe_clicked();
void on_pushButtonC_clicked();
void on_pushButtonDe_clicked();
void on_pushButtonChu_clicked();
void on_pushButton7_clicked();
void on_pushButton8_clicked();
void on_pushButton9_clicked();
void on_pushButtonChen_clicked();
void on_pushButton4_clicked();
void on_pushButton5_clicked();
void on_pushButton6_clicked();
void on_pushButtonJian_clicked();
void on_pushButton1_clicked();
void on_pushButton2_clicked();
void on_pushButton3_clicked();
void on_pushButtonJia_clicked();
void on_pushButtonHuan_clicked();
void on_pushButton0_clicked();
void on_pushButtonDian_clicked();
void on_pushButtonDenyu_clicked();
void AddNum(int i);
void ShowNum();
void Operator(int i);
void TwiceOperator();
double OpreatorTrue();
void DToStr(double c);
private:
Ui::MyWidget *ui;
QErrorMessage * errordlg;
char showstr[100];
double a = 0, b = 0;
int cha = 0, wei = 10, showlen=0, oper;
bool sign = false, signdian = false, starta = false, startb = false, signa = true, signb = true;
};
#endif // MYWIDGET_H
mywidget.cpp 最终更改如下:
#include "mywidget.h"
#include "ui_mywidget.h"
#include<QtDebug>
#include<string>
#include<QString>
#include<QErrorMessage>
const double lin = 0.0000000001;
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui-&