QLineEdit:setValidator for 4bytes unsigned Integer无法正常工作

时间:2015-09-16 12:57:55

标签: c++ qt qtablewidget qlineedit

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

我将QIntValidator用于QLineEditsetCellWidget。 它可以正常工作,最多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);

实施例

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

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

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

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

    有没有其他方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是因为QIntValidtor适用于int,这是一个签名的整数。其他人有similar problem with QSpinbox并且必须扩展其功能才能解决这个问题。

换句话说,您必须implement your own validator class