#include <QApplication>
#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *widget = new QWidget(NULL, Qt::WindowCloseButtonHint);
//构建输入框,设置属性
widget -> setWindowTitle("计算器");
QLineEdit *edit = new QLineEdit(widget);
edit->move(10, 10);
edit->resize(240, 60);
edit->setReadOnly(true);
//构造按钮,设置属性
QPushButton *button[28] = {0};
const char *buttontext[28] =
{
"MC", "MR", "MS", "M+", "M-",
"CE", "C", "+/-", "(",")",
"7", "8", "9", "/", "%",
"4", "5", "6", "*", "1/x",
"1","2","3","-","=",
"0",".","+"
};
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 5; j++)
{
button[5*i + j] = new QPushButton(widget);
button[5*i + j]->move(10 + (10 + 40)*j, 80 + (10 + 40)*i);
button[5*i + j]->resize(40, 40);
button[5*i + j]->setText(buttontext[5*i + j]);
}
}
for(int i = 4,j = 0;j < 4;j++)
{
button[5*i + j] = new QPushButton(widget);
button[5*i + j]->move(10 + (10 + 40)*j, 80 + (10 + 40)*i);
button[5*i + j]->resize(40, 40);
button[5*i + j]->setText(buttontext[5*i + j]);
}
}
for(int i = 4,j = 0;j < 4;j++)
{
button[5*i + j] = new QPushButton(widget);
button[5*i + j]->move(10 + (10 + 40)*j, 80 + (10 + 40)*i);
button[5*i + j]->resize(40, 40);
button[5*i + j]->setText(buttontext[5*i + j]);
}
button[24] = new QPushButton(widget);
button[24]->move(10 + (10 + 40)*4, 80 + (10 + 40)*4);
button[24]->resize(40, 87);
button[24]->setText(buttontext[24]);
button[25] = new QPushButton(widget);
button[25]->move(10, 80 + (10 + 40)*5);
button[25]->resize(87, 40);
button[25]->setText(buttontext[25]);
button[26] = new QPushButton(widget);
button[26]->move(10 + (10 + 40)*2, 80 + (10 + 40)*5);
button[26]->resize(40, 40);
button[26]->setText(buttontext[26]);
button[27] = new QPushButton(widget);
button[27]->move(10 + (10 + 40)*3, 80 + (10 + 40)*5);
button[27]->resize(40, 40);
button[27]->setText(buttontext[27]);
int ret = 0;
widget->show();
widget->setFixedSize(widget->width(), widget->height());
ret = a.exec();
delete widget;
return ret;
}
运行结果(下右图):
(左图是系统自带的计算器)