Home

vk: Switching between two ui forms / QMainWindow - Qt Forum

Date: 2017-10-25 15:33

Я читал статью и комментарии тоже читал. Мне статья не понравилась, мне не понятно зачем вообще весь этот огород (в чем особенность его задачи). Он обрушивается на работу с шаблонами в Qt и на многое другое, но. НО, вот его задача:
» ...мне было необходимо сделать шаблонный класс-контроллер ... Контроллер должен был взаимодействовать с разнотипным целочисленными данными, связывая с ними QSpinBox в качестве GUI.

И далее код с шаблонам:
template< typename T_IntegralType >
class IntegralController {
private:
T_IntegralType *_modelField;
QSpinBox *_view;

А нафига, если как ты не крути, но QSpinBox
умеет работать только с int?

Т.е. мне вот непонятно о чем он думал вообще когда этот код писал:
QSpinBox [club114186123|) {
if (!_view] {
_view = new QSpinBox();
QObject::connect(_view, SIGNAL(valueChanged(int)),
this, SLOT(valueChanged(int));
}
}

private slots:
void valueChanged(int inValue) { *_modelField = inValue; }

Как бы тут и так видно, что view вернет ему int и он присвоит это значение своему T_IntegralType (при этом приведет тип, естественно).

Т.е. как бэ он там не ухищрялся с fastdelegate и своими костылями, ИМХО, код у него все равно кривой.

И, скорее всего, задачу которую он решал скорее всего можно решить в разы проще.

Подробнее