QSqlRelationalTableModel – отстой, и другие грабли

May 31st, 2010 Begemot Posted in Qt

Не хотел жаловаться, но все таки не выдержал. Да и все-таки стоит немного рассказать о популярном мифе о зрелости и вылизанности Qt.

Может конечно мне просто не повезло и я попал в самую, самую дремучую чащу. Но судя по всему QSqlRelationalTableModel более чем глючный класс. “Now I do not use QSqlRelationalTable model at all. Useless class. To many errors… and not so good design also.” Qt bugtracker, Дык вот, я полностью согласен. В попытках его освоить нашел 3 или  4 бага, потерял кучу дней. Научившись обходить часть из них и модицифировав базу данных под его “требования”, уперся в очередную проблему. Выжимка из моих проблем с QSqlRelationalTableModel  и ссылки на баги на форуме1.

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

Сегодня утром пишу код для работы с датами, выбрал формат для хранения в бд второй, для отображения на экране. В итоге не работает. Думал опять код работы с бд глючит. Оказалось нет, правду видимо мне сказали что у меня карма плохая поэтому я на баги нарываюсь – из 7 встроенных в Qt форматов перевода времени в строку и обратно, я выбрал Qt::SystemLocaleLongDate – единственный который не работает:) Добавил баг в багтрекер, можно поздравить с почином. Но на фоне QSqlRelationalTableModel, это уже мелочи – просто выбрал другой формат времени, ерунда:)

Ну и раз уж я недавно жаловался на то что взял wxCalendarCtrl и там было пару мелких проблем, то справедливости ради обязан заметить, что QCalendarWidgets – тоже не идеален, сегодня прикручивал. Есть проблемы как в отображении, так и в поведении, и я бы не сказал что совсем мелкие… Но сейчас я уже почему-то спокойнее к этому отношусь 🙂

Related:

Posted in Qt | Tags:

4 Responses to “QSqlRelationalTableModel – отстой, и другие грабли”

  1. [Достаёт из ножен wxWidgets 2.9.0, разглядывает с уважением, пробует ногтем, цокает языком и аккуратно вкладывает обратно. С умным видом качает головой и гордится, что остался верен своему мечу]
    Бегемот тебе просто везёт на глюки 🙂

  2. Проблемы с работой в БД с Qt были всегда. Они как я понял сосредоточились на GUI. В связи с чем вопрос как тебе их элементы управления в сравнении с wx. И потом лично мои наблюдения у них (Qt-Trolltech) мелкие баги были везде где я смотрел даже в QTableWidget/QTableView наступал.

  3. элементы управления не нативные… но зато одинаковы под осями всем, но это я и так знал. Подробнее пока сказать не могу – я core пишу – пока особо не до контролов.

  4. +1 к посту Sergey.

    Похоже, тут мне самое время сказать: “А я тебе говорил…!”