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);
Примеры
инструмент 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) целое число со знаком.
Есть ли альтернативный способ преодоления проблемы?
1 ответ
Это потому что QIntValidtor
работает с int
который является целым числом со знаком. У кого-то еще была похожая проблема с QSpinbox
и пришлось расширить его функциональность, чтобы решить это.
Другими словами, вам нужно будет реализовать свой собственный класс валидатора.