按照教程,暂定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();
    }
}

显示结果

 

posted on 2025-04-04 14:23  dalgleish  阅读(16)  评论(0)    收藏  举报