QLineEdit: setValidator для 4-байтового целого числа без знака не работает

Я использую QTableWidget вводить значения для пользовательских параметров инструмента. Каждый параметр имеет ограничение максимального размера в байтах.

я использовал QIntValidator с QLineEdit а также setCellWidget, Он отлично работает до 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) целое число без знака; Я не могу ввести какое-либо значение в ячейку.

Это не позволяет мне вводить любое число в ячейку, поскольку максимально допустимое значение QIntValidator составляет (2 147 483 647) целое число со знаком.

Есть ли альтернативный способ преодоления проблемы?

1 ответ

Это потому что QIntValidtor работает с int который является целым числом со знаком. У кого-то еще была похожая проблема с QSpinbox и пришлось расширить его функциональность, чтобы решить это.

Другими словами, вам нужно будет реализовать свой собственный класс валидатора.

Другие вопросы по тегам