Qt学习之路二——一个简单的计算圆的面积程序

一、使用ui编辑器来布局计算面积的一些控件

我们新建一个项目,项目名称为CalArea。并且勾选创建图形界面,基类选择QWidget


然后我们将我们需要的一些控件拖到中间的区域,这个区域就是将要设计的顶层窗口部件。我们这个计算面积的小程序需要两个QLabel 类的控件,两个QLineEdit类的控件, 和一个QPushButton类的控件,之后我们需要在对象查看器中改掉它们的命名,如图所示


我们这个计算面积的小程序需要的功能就是:输入半径,然后单击计算面积的按钮,圆的面积就会在面积的框里面显示出来。

这个就要用到Qt的信号和槽机制,我们鼠标在计算面积的按钮上右击,然后转到槽,然后单击clicked(),Qt就会自动给我们转到相应的槽函数。然后我们只要获取半径的值并且将计算完之后的值显示在面积中就行了。

接下来我们就来看看这个槽函数怎么写。

void Widget::on_pushButton_clicked()
{
    int value = ui->lineEditR->text().toInt();
    double area = value * value * 3.14;
    QString temp;
    ui->lineEdit_Area->setText(temp.setNum(area));
}

这个函数名是QtCreator自动给我们生成的,所以我们只要在这个函数中写具体操作就行了。

我们首先将LineEdit中获取的内容转换为int类型,然后计算面积,最后我们只要将这个结果转换为QString类型,并且放到lineEdit_Area中就行了。最后我们只要编译就能得到我们想要的结果了。



二、不使用ui编辑器,实现这个小功能

我们再新建一个项目,但是这时候我们不要勾选创建图形界面,其他的和上面一样。

这个项目就不会有ui编辑器了,这时候需要我们敲代码来实现这个功能,这里需要的控件和上面的一样,所以我们需要在Widget.h中的Widget类中添加一些成员变量,这些变量分别是QLabel对象, QPushButton对象,QLineEdit对象。还需要添加一个用来布局的对象QGridLayout对象。

接着我们只需要在Widget的构造函数中初始化这些对象,并且给它们布好局就行了。

//对这些控件进行初始化
    RLabel = new QLabel("半径");
    RLineEdit = new QLineEdit;
    AreaLabel = new QLabel("面积");
    AreaLineEdit = new QLineEdit;
    CalButton = new QPushButton("计算");
    mainLayout = new QGridLayout(this);

    //对这些控件进行布局
    mainLayout->setMargin(15);//设置控件和窗口的边距为15
    mainLayout->setSpacing(10);//设定每个控件之间的距离为10

    //将这些控件加入布局中
    mainLayout->addWidget(RLabel, 0,0);
    mainLayout->addWidget(RLineEdit,0,1);
    mainLayout->addWidget(AreaLabel,0,2);
    mainLayout->addWidget(AreaLineEdit,0,3);
    mainLayout->addWidget(CalButton,1,3);

这里需要注意一点的就是,我们需要手动的将信号和槽函数绑定起来。因此我们需要在头文件中添加一个槽函数,void cal() 。

然后我们需要连接信号和槽

connect(CalButton, &QPushButton::clicked, this, &Widget::cal);

第一个参数是信号的发出者,类型是指针类型的,

第二个参数是发送的信号, 形式是: &发送信号者所属的类::信号

第三个参数是信号接收者,类型也是指针

第四个参数是接收信号的函数,也就是信号处理函数,  形式是: &信号接收者所属的类::处理信号的函数

然后我们在槽函数中写入计算面积的代码就行了,这段代码和之前的一样。

void Widget::cal()
{
    int value = RLineEdit->text().toInt();
    double area = value * value * 3.14;
    AreaLineEdit->setText(QString().setNum(area));

}
编译通过后的结果是这样的


这样也能实现我们所需要的功能。

以上就是用Qt Creator编写一个简单的程序的过程。

猜你喜欢

转载自blog.csdn.net/y____xiang/article/details/80302611