按照教程,暂定0xFFFF为最大。代码如下。
package jqt; import io.qt.core.QRegularExpression; import io.qt.gui.QRegularExpressionValidator; import io.qt.gui.QValidator; import io.qt.widgets.QSpinBox; import io.qt.widgets.QWidget; public class QHexSpinBox extends QSpinBox{ private QRegularExpressionValidator validator; public QHexSpinBox(){ this(null); } public QHexSpinBox(QWidget parent){ super(parent); setRange(0,0xFFFF); validator = new QRegularExpressionValidator(new QRegularExpression("[0-9A-Fa-f]{1,4}")); } @Override public QValidator.State validate(QValidator.QValidationData data){ return validator.validate(data); } @Override protected int valueFromText(String text){ return text.toInt(16); } @Override protected String textFromValue(int value){ return ((Integer)value).toText(16).toUpperCase(); } }
调用如下
package one; import jqt.Jqt; import jqt.QHexSpinBox; public class Main{ public static void main(String[] args){ Jqt qt = new Jqt(args, null); QHexSpinBox hex = new QHexSpinBox(); hex.show(); qt.run(); } }
显示结果

浙公网安备 33010602011771号