QuiltingHMI/sharedviews/numerinputdialog.h
2024-02-06 15:10:48 +08:00

101 lines
2.8 KiB
C++

#ifndef NUMERINPUTDIALOG_H
#define NUMERINPUTDIALOG_H
#include <QDialog>
#include "mybutton.h"
#include "setcontrolstyle.h"
#define NUM_BAK_LAG 100 // 数据撤销次数
namespace Ui {
class NumerInputDialog;
}
class NumerInputDialog : public QDialog
{
Q_OBJECT
public:
explicit NumerInputDialog(QWidget *parent = 0);
~NumerInputDialog();
private:
Ui::NumerInputDialog *ui;
private:
int64_t m_value;
int64_t m_min;
int64_t m_max;
int m_afterPoint;
int64_t m_defVal;
private:
int m_defFlag;
int m_pointFlag; // 小数点标志
QString m_unitStr;
QList<QPushButton*> m_leftNumberBtnList;
QList<QPushButton*> m_rightNumberBtnList;
private:
int64_t m_valuebak[NUM_BAK_LAG]; // 数值恢复备份
int m_pointFlagbak[NUM_BAK_LAG]; // 小数点恢复备份
int m_bakIdx; // 数组索引
private:
QString getShowString(int64_t val, int pointflag);
int checkValueRange(int64_t val, int pointflag);
int64_t fixValue( int64_t val, int pointflag);
int getPointMuti(int pointflag);
void showValue();
void showRange();
void addNum(int num);
void changeValue(int weights);
void bakValue(); // 备份撤销数据
void chkbakValue(); // 校验备份撤销数据
void rebakValue(); // 恢复备份撤销数据
private:
void initControl();//初始化窗体控件,包括位置、尺寸、样式
void initResolution1910();//初始化窗体控件为1920x1080分辨率
void initResolution1006();
void initControlStyle();//初始化窗体控件样式
public:
void initDialog();//初始化窗体
void setTitleStr(QString str);//设置标题
void setUnitStr(QString str);
void setValueAndRange(int64_t val, int64_t min, int64_t max, int afterpoint, int defen = 0, int64_t defvalue = 1);
int64_t getValue();
private slots:
void on_buttonClean_clicked();
void on_buttonNum00_clicked();
void on_buttonDelete_clicked();
void on_buttonNum7_clicked();
void on_buttonNum8_clicked();
void on_buttonNum9_clicked();
void on_buttonNum4_clicked();
void on_buttonNum5_clicked();
void on_buttonNum6_clicked();
void on_buttonNum1_clicked();
void on_buttonNum2_clicked();
void on_buttonNum3_clicked();
void on_buttonPlusMinus_clicked();
void on_buttonNum0_clicked();
void on_buttonPoint_clicked();
void on_buttonDec1000_clicked();
void on_buttonInc1000_clicked();
void on_buttonDec100_clicked();
void on_buttonInc100_clicked();
void on_buttonDec10_clicked();
void on_buttonInc10_clicked();
void on_buttonDec1_clicked();
void on_buttonInc1_clicked();
void on_buttonDec01_clicked();
void on_buttonInc01_clicked();
void on_buttonOk_clicked();
void on_buttonCancel_clicked();
};
#endif // NUMERINPUTDIALOG_H