Qt5 编写的简单计算(2)

QGridLayout *gridLayout = new QGridLayout;
  gridLayout->addWidget(screenTextEdit, 0, 0, 2, 5);
  gridLayout->addWidget(button1, 2, 0, 1, 1);
  gridLayout->addWidget(button2, 2, 1, 1 ,1);
  gridLayout->addWidget(button3, 2, 2, 1, 1);
  gridLayout->addWidget(buttonadd, 2, 3, 1, 1);
  gridLayout->addWidget(buttonsub, 2, 4, 1, 1);
  gridLayout->addWidget(button4, 3, 0, 1, 1);
  gridLayout->addWidget(button5, 3, 1, 1, 1);
  gridLayout->addWidget(button6, 3, 2, 1, 1);
  gridLayout->addWidget(buttonx, 3, 3, 1, 1);
  gridLayout->addWidget(buttondivide, 3, 4, 1, 1);
  gridLayout->addWidget(button7, 4, 0, 1, 1);
  gridLayout->addWidget(button8, 4, 1, 1, 1);
  gridLayout->addWidget(button9, 4, 2, 1, 1);
  gridLayout->addWidget(buttonLArc, 4, 3, 1, 1);
  gridLayout->addWidget(buttonRArc, 4, 4, 1, 1);
  gridLayout->addWidget(button0, 5, 0, 1, 1);
  gridLayout->addWidget(buttondot, 5, 1, 1, 1);
  gridLayout->addWidget(buttonback, 5, 2, 1, 1);
  gridLayout->addWidget(buttonclear, 5, 3, 1, 1);
  gridLayout->addWidget(buttonequal, 5, 4, 1, 1);

setLayout(gridLayout);
  initVector();
}
void Calculator::initConnect()
{
  connect(button0, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button1, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button2, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button3, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button4, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button5, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button6, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button7, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button8, &QPushButton::clicked, this, &Calculator::getButton);
  connect(button9, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttonx, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttonadd, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttondivide, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttondot, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttonsub, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttonRArc, &QPushButton::clicked, this, &Calculator::getButton);
  connect(buttonLArc, &QPushButton::clicked, this, &Calculator::getButton);

connect(buttonback, &QPushButton::clicked, this, &Calculator::myBackSpace);
  connect(buttonclear, &QPushButton::clicked, this, &Calculator::clearScreen);
  connect(buttonequal, &QPushButton::clicked, this, &Calculator::getButton);
}

bool Calculator::isTwoOptr(QPushButton *button)
{
  if(button == buttonadd || button ==buttonsub
          || button == buttonx || button == buttondivide)
      return true;
  else
      return false;
}
void Calculator::myBackSpace()
{
  QTextCursor cursor = screenTextEdit->textCursor();
  cursor.deletePreviousChar();
  if(!isEqualClicked)
      vectorExp.pop_back();

}

void Calculator::getButton()
{
  QPushButton* button = qobject_cast<QPushButton*>(sender());
  if(isTwoOptrsFlag && isTwoOptr(button))
  {

}
  else{

vectorExp.append(button2char(button));
      isEqualClicked = false;
      isTwoOptrsFlag = false;
      if(!isEnter)
          screenTextEdit->append("");
      screenTextEdit->insertPlainText(button->text());
      isEnter = true;
      if(button == buttonadd || button == buttonsub
          || button == buttonx || button == buttondivide)
      isTwoOptrsFlag = true;
  }

if(button == buttonequal)
  {
      isEqualClicked = true;
      getResult();
  }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/61032b9600af294798e138f390e3db2e.html