Отобразить QWidget в переменную

Идея заключалась в том, чтобы связать QWidget с переменной, чтобы при изменении текста в виджете он также изменялся в переменной.

И сделать это только с одной строкой, как это

WidgetMapper::connect(ui->lineEdit, SIGNAL(textChanged(QString)), someClass.var);

который соединит, например, QLineEdit с переменной.

1) Это будет отображать var в строке

2) когда lineEdit запускает textChanged(QString) signal — WidgetMapper преобразует этот QString в правильный отображенный тип с помощью stringstream и запишет его в var,

Но я не очень хорошо знаю шаблоны и не знаю, возможно ли это вообще.
Я не думаю, что можно использовать один WidgetMapper для каждого типа, поэтому я также попытался создать отдельные экземпляры для каждого типа (WidgetMapper<int> mapper;), который все же лучше было бы тогда писать сеттеры и onTextChangedSlots для каждого QLiteEdit, но я не мог понять, как заставить это работать также (часть конвертера все еще не могла определить правильный тип).

WidgetMapper использует QSignalMapper для отображения сигнала в QWidget, и он работал нормально, часть, с которой у меня проблемы — преобразование QString в переменную шаблона.

Так возможно ли это? И если да, то как я могу это сделать? Или, может быть, уже есть решение этой проблемы? (Как-то использовать QDataWidgetMapper с классом, который может содержать переменные?)

0

Решение

Во-первых, подключение переменной не сделало бы ничего, кроме вызова некоторой функции, если бы это было возможно.

Вторая попытка с помощью QSignalMapperТаким образом, вы можете использовать один слот для всех виджетов, учитывая, что их указатели хранятся в массиве, а индексом является сигнал (int), испускаемый SignalMapper. Таким образом, ваш слот может просто использовать MyWidgetArray[i]->text(),

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]