使用QT制作一个简易计算器
①在上述工程的dialog.h中添加如下加代码
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();
private:
QLabel *label1,*label2;
QLineEdit *lineEdit;
QPushButton *button;
};
此时要在文件最开始加入头文件:
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
②在dialog.cpp 中添加如下代码
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
label1=new QLabel(this);
label1->setText(tr("请输入圆的半径:"));
lineEdit=new QLineEdit(this);
label2=new QLabel(this);
button=new QPushButton(this);
button->setText(tr("显示对应圆的面积"));
QGridLayout *mainLayout=new QGridLayout(this);
mainLayout->addWidget(label1,0,0);
mainLayout->addWidget(lineEdit,0,1);
mainLayout->addWidget(label2,1,0);
mainLayout->addWidget(button,1,1);
}
并添加头文件
#include <QGridLayout>
可能存在中文乱码问题
解决方案
label1->setText(QString::fromLocal8Bit("请输入圆的半径:"));
③打开dialog.h文件,在类构造函数和控件成员声明后,添加如下代码
class Dialog : public QDialog
{
... ...
QPushButton *button;
private slots:
void showArea();
};
④打开dialog.cpp 文件,在构造函数中添加如下加代码
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
... ...
mainLayout->addWidget(button,1,1);
connect(button,SIGNAL(clicked()),this,SLOT(showArea()));
}
⑤在showArea()中实现显示圆面积功能,代码如下
void Dialog::showArea()
{
bool ok;
QString tempStr;
QString valueStr=lineEdit->text();
int valueInt=valueStr.toInt(&ok);
double area=valueInt*valueInt*PI;
label2->setText(tempStr.setNum(area));
}
并增加全局变量
const static double PI=3.1416;