QT5 学习笔记02-利用代码的第一个实例
第二个实例,计算圆的面积
利用代码实现
创建项目时不选择创建界面选项
建立好后项目中不含有ui designer
对象的位置用布局管理器控制
如:
QGridLayout* mainLayout=new QGridLayout(this);
mainLayout->addWidget(label1,0,0);
关于槽的相关资料
https://www.ibm.com/developerworks/cn/linux/guitoolkit/qt/signal-slot/
https://blog.youkuaiyun.com/NCTU_to_prove_safety/article/details/70171664
主窗口中的代码如下:
#include "dialog.h"
#include "QGridLayout"
const static double PI=3.1416;
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
label1=new QLabel(this);
label1->setText(tr("请输入圆的半径:"));
lineEdit=new QLineEdit(this);
label2=new QLabel(this);
label3=new QLabel(this);
label3->setText(tr("结果"));
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);
mainLayout->addWidget(label3,2,0);
//connect(button,SIGNAL(clicked()),this,SLOT(showArea()));
connect(lineEdit,SIGNAL(textChanged(QString)),this,SLOT(showArea()));
//两种显示方式
}
Dialog::~Dialog()
{
}
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));
}