• Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    Потрясно! Жалко уже написал велосипед. Если будет время, перепишу на ваш способ. Вообще, стоило догадаться, что идиома модель-представления в qt предусмотрена и для форм. Спасибо.
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    Конкретно в этой задаче общий интерфейс у самописных виджетов будет ограничиваться get/set. Они примитивные. Все запросы к бд выполняет класс-окно. Окон правда похожих на это предостаточно. Буду рад любым наводкам/ссылкам/книгам по реализации вашего способа.
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    Да, это должно сработать, не совсем правда изящно. Большое спасибо!
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    А да, решает. Если честно, до этого момента не думал, что полиморфизм при множественном наследовании работает. Всё встало на свои места. Спасибо.

    Не совсем понял второй вопрос. Эти отдельные классы - не наследники базовых виджетов? Protected методы обработки событий мне тоже надо переопределять.
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    Поясните, пожалуйста. Мои классы отнаследованы от базовых (QLineEdit, QDateEdit и QComboBox соответственно). Как сделать им общий интерфейс, если у них родители разные? Оба мои варианта (IUpdate как второй родитель или IUpdate как шаблон класса) не решают проблему.
    //прошу прощения, если спрашиваю что-то базовое
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    По вашему, мы так избавимся от downcast'а?
  • Как избавиться от downcast'а в GUI?

    @timao Автор вопроса
    Поясните, пожалуйста. Создать, один раз их написав, не проблема. Хотелось бы потом в цикле по ним ходить. И при генерации запросов (insert и update) получать запрос, написав пару строк, а не перечисляя, боясь забыть, все эти виджеты и их sql поля.
  • QAbstractTableModel или QSqlTableModel?

    @timao Автор вопроса
    Спасибо за развёрнутый ответ.
    Если честно, на наследование от QAbstractTableModel меня натолкнула вот эта статья habrahabr.ru/post/171443

    Но сейчас глянув в документацию, увидел функцию
    void QSqlTableModel::setFilter ( const QString & filter )
    которая решит проблему в поиском. Также есть чудесный класс QSqlRelationalTableModel (так сказать на перспективу). В общем в купе с сортиркой всё, что душе угодно.

    1) Но всё же меня беспокоит вот этот абзац в статье на хабре:
    "Во-первых, если объем данных большой, то построение модели займет достаточно много времени. Более того, поскольку модель должна быть готова полностью до того, как мы сможем показать ее пользователю, придется прочитать все данные."

    Не могли бы вы его прокомментировать.

    2) QSortFilterProxyModel знает о том, что он фильтрует QSqlTableModel? Ведь нужно добавлять соответствующий "order by" к запросу.
  • Репликация баз данных. Обновление на подписчике (реплике). Как реализовать?

    @timao Автор вопроса
    Спасибо за ответ. На , что делать, когда данные на серверном мастере (я же правильно понимаю, такая репликация называется мастер-мастер) свежее, чем на клиентском, а клиентский мастер хочет сделать update. Eдинственное, что пришло в голову, учитывать время создания запроса и считать при подключении к серверу рассинхрон во времени. Такой подход не кажется мне очень стабильным, к сожалению.
  • Наследовать ли собственный класс от QObject?

    @timao Автор вопроса
    Предполагаю в последствии у класса GUI, поэтому на всякий случай отнаследуюсь. Спасибо.
  • Наследовать ли собственный класс от QObject?

    @timao Автор вопроса
    а если использовать qt только как библиотеку классов, то наследовать не надо?