今天实践一下刚学的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("有错");
}
}
运行效果:
好嘞,下课!!!!!!!!!!!!!