Идея заключалась в том, чтобы подключить QWidget с переменной, чтобы при изменении текста в виджета он также будет изменен в переменной.Map QWidget to variable
И сделать это только с одной линии, как этот
WidgetMapper::connect(ui->lineEdit, SIGNAL(textChanged(QString)), someClass.var);
, которые соединяют бы, например QLineEdit
с переменной.
1) Этот дисплей будет var
в lineEdit
2), когда lineEdit стреляет textChanged(QString)
сигнал - WidgetMapper бы преобразовать этот QString, чтобы исправить отображенный тип с stringstream и записать его на var
.
Но я действительно не знаю шаблонов, которые хорошо, и не знаю, возможно ли вообще. Я не думаю, что можно использовать один WidgetMapper для каждого типа, поэтому я также попытался создать отдельные экземпляры для каждого типа (WidgetMapper<int> mapper;
), которые все еще были бы готовы, а затем записывали сеттеры и onTextChangedSlots для каждого QLiteEdit, но я не мог понять, как сделать он также работает (часть преобразователя все еще не может определить правильный тип).
WidgetMapper использует QSignalMapper для отображения сигнала в QWidget, и он работал нормально, часть, с которой я столкнулся, - преобразует QString в переменную шаблона.
Так что это возможно? И если да, как я могу это сделать? Или, может быть, уже есть решение этой проблемы? (Как-то использовать QDataWidgetMapper
с классом, который может содержать переменные?)
Почему вы не используете 'QLineEdit :: value()' и конвертируете возвращаемое значение, когда оно вам нужно? –
@RomhaKorev, потому что их много, и изменения должны изменять значения в переменных сразу после его редактирования. Поэтому я хотел бы избежать записи в слот onTextChanged для каждого QLineEdit, чтобы преобразовать его текст() в переменную – Stals