You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.7 KiB
C++
70 lines
2.7 KiB
C++
#ifndef NMWXMEASURINGSCALEDLG_H
|
|
#define NMWXMEASURINGSCALEDLG_H
|
|
|
|
#include "iDlgBase.h"
|
|
#include "nmSubWxs_global.h"
|
|
|
|
#include <QPointF>
|
|
#include <QSize>
|
|
#include <QString>
|
|
|
|
class QLineEdit;
|
|
|
|
/**
|
|
* @brief 比例尺设置对话框,用实际长度标定绘图区中选定的线段。
|
|
* @note 起始点、终点使用可复制的只读输入框;实际长度的显示单位和换算由框架单位绑定器管理。
|
|
* 确认后仅向调用方返回米制长度,由所属绘图窗口在标定成功后保存分析数据。
|
|
* 取消或关闭窗口不提交编辑内容。
|
|
* 字段初始尺寸由字体和主题决定,坐标内容影响推荐宽度;控件采用推荐高度,纵向保持紧凑。
|
|
* 输入列与单位列沿用储层参数常规字段的 8:5 横向伸展比例。
|
|
*/
|
|
class NM_SUB_WXS_EXPORT nmWxMeasuringScaleDlg : public iDlgBase
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
/**
|
|
* @brief 根据绘图区选定的两个点及初始实际长度创建对话框。
|
|
* @param startPoint 绘图区线段起点,保留调用方传入的坐标值。
|
|
* @param endPoint 绘图区线段终点,保留调用方传入的坐标值。
|
|
* @param pLength 输入/输出的实际长度,单位为米;初始为零时需要用户填写。
|
|
* @note pLength 由调用方持有,必须非空且在对话框存续期间有效。
|
|
* 对话框不释放该指针,仅在确认成功时更新其指向的数值。
|
|
*/
|
|
nmWxMeasuringScaleDlg(QPointF startPoint, QPointF endPoint, double* pLength);
|
|
|
|
/** @brief 按布局、当前字体及坐标文字给出推荐尺寸,不设置固定尺寸或内容最小宽度。 */
|
|
QSize sizeHint() const override;
|
|
|
|
protected:
|
|
/**
|
|
* @brief 校验当前单位下的长度,返回米制长度并以 Accepted 状态关闭窗口。
|
|
* @note 长度无效时保留编辑状态和输入焦点,不弹出校验提示。
|
|
*/
|
|
void accept() override;
|
|
|
|
private:
|
|
/** @brief 创建只读坐标和实际长度输入区,并绑定单位及确定/取消按钮。 */
|
|
void initUI() override;
|
|
|
|
private:
|
|
// 绘图区线段端点;仅供查看,不随长度单位切换而换算。
|
|
QPointF m_startPoint;
|
|
QPointF m_endPoint;
|
|
|
|
// 端点坐标文本,供只读输入框展示。
|
|
QString m_sStartPoint;
|
|
QString m_sEndPoint;
|
|
|
|
// 借用调用方的米制长度地址,确认前不回写,不拥有该指针。
|
|
double* m_pLength;
|
|
|
|
// 实际长度输入框;由 Qt 父子对象机制释放,数值含义由绑定器及当前单位决定。
|
|
QLineEdit* m_pLengthEdit;
|
|
|
|
// 长度单位是否绑定成功;失败时禁用编辑和确认,避免提交未换算的数值。
|
|
bool m_bUnitBound;
|
|
};
|
|
|
|
#endif // NMWXMEASURINGSCALEDLG_H
|