遍历QVector<stuARLabelShow> m_vecStuARLabelShow ,如果LabelShow中point 在鼠标范围5px内则将鼠标显示可拖拽
时间: 2024-02-24 18:00:30 浏览: 16
可以通过以下代码实现遍历过程以及判断条件:
```c++
for(int i = 0; i < m_vecStuARLabelShow.size(); i++){
stuARLabelShow labelShow = m_vecStuARLabelShow.at(i);
QPoint labelPoint = labelShow.point;
QPoint mousePoint = QCursor::pos();
int distance = qSqrt(qPow(labelPoint.x() - mousePoint.x(), 2) + qPow(labelPoint.y() - mousePoint.y(), 2));
if(distance <= 5){
setCursor(Qt::OpenHandCursor);
break;
}
}
```
其中,`m_vecStuARLabelShow` 是一个存储 `stuARLabelShow` 结构体的 QVector,`stuARLabelShow` 结构体包含一个 QPoint 类型的 point 成员变量,表示该标签在窗口中的位置。在遍历 QVector 时,我们通过 `at` 方法获取每个结构体,然后获取该结构体的 point 成员变量。接着,我们获取当前鼠标的位置,并计算鼠标与标签位置的距离。如果距离小于等于 5 像素,则将鼠标的光标设置为可拖拽状态(OpenHandCursor),并退出遍历。
相关问题
帮我翻译一下这段代码UsObjVelocity m_Velocity; QVector<UsProbeInfo> P_probe; QVector<UsWeldInfo> W_wedge; QVector<FocusLawOneGroup> m_Vector_FocusLawOneGroup; QVector<LawDelay> m_LawDelay; Struct_GetEncoderParam m_EncodeData;
Sure! Here is the translation of the code:
```cpp
UsObjVelocity m_Velocity; // UsObjVelocity类型的对象m_Velocity
QVector<UsProbeInfo> P_probe; // QVector<UsProbeInfo>类型的对象P_probe
QVector<UsWeldInfo> W_wedge; // QVector<UsWeldInfo>类型的对象W_wedge
QVector<FocusLawOneGroup> m_Vector_FocusLawOneGroup; // QVector<FocusLawOneGroup>类型的对象m_Vector_FocusLawOneGroup
QVector<LawDelay> m_LawDelay; // QVector<LawDelay>类型的对象m_LawDelay
Struct_GetEncoderParam m_EncodeData; // Struct_GetEncoderParam类型的对象m_EncodeData
```
请注意,这只是将代码中的类型名称进行翻译,并不涉及具体的含义和功能。如果您需要进一步了解这些对象的用途和功能,请查阅相关文档或代码上下文。
Qt cpp 遍历list<string> camList 将元素放入QVector<QString> m_vecGuids
可以使用C++11中的range-based for循环来遍历camList,并将元素添加到m_vecGuids中。具体代码如下:
```cpp
#include <QtCore/QString>
#include <QtCore/QVector>
#include <list>
#include <string>
int main()
{
std::list<std::string> camList = {"cam1", "cam2", "cam3"};
QVector<QString> m_vecGuids;
for (const auto& cam : camList)
{
m_vecGuids.append(QString::fromStdString(cam));
}
return 0;
}
```
在循环中,我们使用了`const auto&`来声明一个常量引用,以便在循环中访问camList中的每个元素。然后,我们使用`QString::fromStdString()`将std::string类型的cam转换为QString类型,并将其添加到m_vecGuids中。