#ifndef NUMERINPUTDIALOG_H #define NUMERINPUTDIALOG_H #include #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 m_leftNumberBtnList; QList 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