Qt基础类02-坐标类QPointF
摘要
1.本文测试验证了QT5中的QPointF类的各成员函数和属性
2.本文适用于学习QT的新手入门及练习,老手请绕路。
3.工程上传至CSDN,供同一时期学习QT的网友参考,可自行查看。
基本信息
时间:2024.08.27
QT版本:5.14.2
平台:window 10
程序简介:
-
本工程是Qt基础类和基本数据类型专题例程,QPointF坐标类
-
本工程对照着Qt的帮助文档,把每个属性和成员函数测试了一遍
-
本工程QPointF类的测试程序,与QPoint类的测试程序,有较强的相似性,但也有细微差别,也要注意。
重要成员函数举例6个
程序全貌
这个练习程序,是对照着QT中QPointF的帮助文档,一个一个测试形成的。有了前一个测试程序QPointDemo的经验,这个例程就容易理解了。
全貌如下图:
QPointF::QPointF()
qDebug()<<"";
qDebug()<<"帮助:构造一个零点,即坐标为(0.0,0.0)";
QPointF p1;
QPointF p2(0,0);
QPointF p3(0.0,0.0);
qDebug()<<"如下3种不同的写法,坐标均为0,输出时均不带小数";
qDebug()<<"QPointF p1;";
qDebug()<<"QPointF p2(0,0);";
qDebug()<<"QPointF p3(0.0,0.0);";
qDebug()<<"p1点的坐标是:"<<p1.rx()<<","<<p1.ry();
qDebug()<<"p2点的坐标是:"<<p2.rx()<<","<<p2.ry();
qDebug()<<"p3点的坐标是:"<<p3.rx()<<","<<p3.ry();
qDebug()<<"";
qDebug()<<"";
程序运行效果如下:
static qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)
qDebug()<<"";
qDebug()<<"帮助:返回p1和p2的点积。";
qDebug()<<"两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:";
qDebug()<<"a·b=a1b1+a2b2+……+anbn";
QPointF p(3.1,7.1);
QPointF q(-1.0,4.1);
int lengthSquared=QPointF::dotProduct(p,q);
qDebug()<<"如下这种写法:";
qDebug()<<"QPointF p(3.1,7.1);";
qDebug()<<"QPointF q(-1.0,4.1);";
qDebug()<<"int lengthSquared=QPointF::dotProduct(p,q);";
qDebug()<<"p与q的点积lengthSquared="<<lengthSquared;
qDebug()<<"";
qDebug()<<"";
程序运行效果如下:
bool QPointF::isNull() const
qDebug()<<"";
qDebug()<<"帮助:如果x和y坐标都被设置为0.0(忽略符号),则返回true;否则返回false。";
QPointF p1(0.0,0.0);
QPointF p2(1.27,2.54);
bool result1=p1.isNull();
bool result2=p2.isNull();
qDebug()<<"如下代码:";
qDebug()<<"QPointF p1(0.0,0.0);";
qDebug()<<"QPointF p2(1.27,2.54);";
qDebug()<<"bool result1=p1.isNull();";
qDebug()<<"bool result2=p2.isNull();";
qDebug()<<"result1为"<<result1;
qDebug()<<"result2为"<<result2;
qDebug()<<"";
qDebug()<<"";
程序运行效果如下:
const QPointF operator*(const QPointF &point, qreal factor)
qDebug()<<"";
qDebug()<<"帮助:返回给定点乘以给定因子的副本。";
QPointF p(1.27,2.54);
QPointF q;
qreal factor=100.1;
q=operator*(p,factor);
qDebug()<<"如下代码:";
qDebug()<<"QPointF p(1.27,2.54);";
qDebug()<<"QPointF q;";
qDebug()<<"qreal factor=100.1;";
qDebug()<<"q=operator*(p,factor);";
qDebug()<<"q点的坐标是:"<<q.rx()<<","<<q.ry();
qDebug()<<"";
qDebug()<<"";
程序运行效果如下:
const QPointF operator/(const QPointF &point, qreal divisor)
qDebug()<<"";
qDebug()<<"帮助:返回QPointF对象,该对象由给定点的两个分量除以给定除数形成。";
QPointF p(666.666,888.888);
QPointF q;
qreal divisor=100.1;
q=operator/(p,divisor);
qDebug()<<"如下代码:";
qDebug()<<"QPointF p(666.666,888.888);";
qDebug()<<"QPointF q;";
qDebug()<<"qreal divisor=100.1;";
qDebug()<<"q=operator/(p,divisor);";
qDebug()<<"q点的坐标是:"<<q.rx()<<","<<q.ry();
qDebug()<<"";
qDebug()<<"";
程序运行效果如下:
小技巧
在按钮输入文本时,如果要输入&符号,要连续输入2个&符合即可。如下:
const QPointF operator/(const QPointF &&point, qreal divisor)
const QPointF operator/(const QPointF &point, qreal divisor)