How to subclass QSpinBox so it could have int64 values as maxium and minimum

后端 未结 1 1916
说谎
说谎 2021-02-14 04:22

I need to implement a QSpinBox control which should be able to process int64 values as it\'s minimum & maximum values. Current implementation only

相关标签:
1条回答
  • 2021-02-14 04:46
    1. Derive from QAbstractSpinBox.
    2. Add a QValidator to the QLineEdit to only allow valid int64 values.
    3. Add a property called value to provide access to the int64 member that actually holds the value.
    4. Reimplment stepBy(int steps) to modify the number.
    5. Implement the methods and properties specific to QSpinBox that you are interested in (minimum/maximum limits, prefix, suffix, etc).

    Essentially you are maintaining two states: one is the actual int64 value, the other is the text held by the QLineEdit. Usually this is just updated by:

    lineEdit()->setText(QString::number(myNumber));
    

    But it will have to be tweaked slightly if the user wants a prefix or suffix.

    0 讨论(0)
提交回复
热议问题