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

我使用QIntValidatorQLineEditsetCellWidget
它最多可以处理4个字节的有符号整数,而当设置为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(带符号整数)一起使用。其他人使用了similar problem with QSpinbox ,必须扩展其功能才能解决此问题。

    换句话说,您将不得不implement your own validator class

    关于c++ - QLineEdit:setValidator for 4bytes unsigned Integer不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32609274/

    10-11 01:10