关于C#:QLineEdit:setValidator for 4bytes unsigned Integer不起作用

QLineEdit : setValidator for 4bytes unsigned Integer not working

我正在使用QTableWidget输入用户定义工具的参数值。每个参数都有一个最大大小限制(以字节为单位)。

我将QIntValidatorQLineEditsetCellWidget一起使用。
它可以正常工作多达4个字节的有符号整数,而在设置为4个字节的无符号整数时不接受输入。

1
2
3
4
  QLineEdit *edit = new QLineEdit(ui->tableWidget);
  edit->setValidator(new QIntValidator(tpMinValue.at(i).toUInt(), tpMaxValue.at(i).toUInt(), edit));
  edit->setStyleSheet("QLineEdit { border: none }");
  ui->tableWidget->setCellWidget((i-1), 2, edit);

例子

  • 工具A:最大大小为2个字节(65,535)无符号整数;
    我可以在单元格中输入最多65,535的值。

  • 工具B:最大大小为4个字节(2,147,483,647)有符号整数;
    我可以在单元格中输入的值最大为2,147,483,647。

  • 工具C:最大大小为4个字节(4,294,967,295)无符号整数;
    我无法在单元格中输入任何值。

  • 不允许我在单元格中输入任何数字,因为QIntValidator的最大允许值为(2,147,483,647)个有符号整数。

    是否有其他方法可以解决该问题?


    这是因为QIntValidtorint一起使用,这是一个有符号整数。 QSpinbox的其他人也有类似的问题,必须扩展其功能才能解决此问题。

    换句话说,您将必须实现自己的验证器类。