今天实践一下刚学的qt知识,那么我们使用QT最重要的就是信号与槽的使用,那么今天我们就来实践一下。
计算圆的面积
1.创建项目
这个就不用多说了,大家就正常创建一个QWidget的项目就好了
2.编辑UI文件

我们这样创建一个我们的UI项目文件,创建完成之后我们设置一下我们这个ui控件的名称,我们将半径的输入框改名为R

然后同样的吧面积的也改了:area
3.转到槽
1.点击按钮实现计算
我们将按钮改为信号
我们右键点击按钮控件,选择转到槽(这玩意不能截图 我就服了)

我们选择第一个
然后他会自动跳转到widget.cpp文件中
2.自动计算
我们将半径的输入框转到槽

我们选择这个,当文本改变的时候发出信号。
4.程序编写
1.点击按钮计算
这个事先要在最上面定义PI昂!!
const strtic PI = 3.14;
//定义一个全局的静态变量。
void Widget::on_pushButton_clicked()
{
    bool flag;//定义一个标志
    QString strR = ui->R->text()QLine获取的数据是字符串类型,所以我们使用QString来接收
    double doubleR = strR.toDouble(&flag);使用todoubler进行数据的转换,
    if(flag){判断是否转换成功
        double area = doubleR * doubleR *PI;计算面积
        QString Strarea = QString::number(area,'f',3);将double转换为字符串类型,保留三位小数
        ui->area->setText(Strarea);将这个面积显示到面积的输入框中
    }else {
        ui->area->setText("is woring");没有转换成功,就报错。
    }
} 
 
运行效果

2.自动计算显示
直接上代码:
void Widget::on_R_textChanged(const QString &arg1)
{
    Q_UNUSED(arg1);//如果不是用arg1这个参数就把他注释了
    bool ok;
    QString rstr = ui->R->text();
    int rint =rstr.toInt(&ok);
    if(ok){
        double areaint = rint * rint * PI;
        QString areastr = QString::number(areaint,'f',3);
        ui->area->setText(areastr);
    }else {
        ui->area->setText("有错");
    }
} 
运行效果:
好嘞,下课!!!!!!!!!!!!!



















