АЗ
Андрей Зимин4 августа 2016 г. 19:56

Не понятное поведение QSqlTableModel

QAbstractListModel, QPSQL, QSqlTableModel

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

В архиве очень простенький пример этой проблемы. А проблема такая.

Создаю простое подключение в БД с драйвером QPSQL все работает и все подключается. Создаю model = new QSqlTqbleModel(this, bd); и пытаюсь представить ее в listView и tableView, но ни там ни там этого не происходит, хотя данные с сервера идут и в qDebug я их вывожу.

Дальше интересней. Коментируем подключение через QPSQL и ставим QSQLITE. Больше ничего не меняем… и все отображается.

Ну и верх моего удивления. Возвращаем все обратно, т.е. QPSQL и делаем через QAbstractListModel – все отображается и работает.

Подскажите, где у меня пробел в голове?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

7
Evgenii Legotckoi
  • 9 августа 2016 г. 3:02

День добрый, Андрей.

Вообще, не обязательно передавать базу данных в следующей строке (Там по умолчанию будет подставлено всё, что нужно):
model = new QSqlTableModel(this, db);

В заголовочном файле меня напрягает, что набор директив #define немного различный, хотя это скорее всего и не принципиально. А вот по остальному, нужно смотреть, что вы сделали в приложенном архиве. Я увеличил размер вложений до 500 кБ. Нужно смотреть проект в целом. А вообще, скорее всего какая-то ошибка в инициализации или вообще отсутствие искомых таблиц при первом обращении.

    АЗ
    • 9 августа 2016 г. 9:32
    Евгений а можете увеличить до 800 а то архив получается 769kb
      АЗ
      • 9 августа 2016 г. 9:34
      хотя там в архиве то и нет ни чего ценного. только файлы по умолчанию. и вот те что в начале передал.
        Evgenii Legotckoi
        • 9 августа 2016 г. 22:50
        Увеличил до 1-го мегабайта.
        У вас получается Postgresql используется? Довольно сумбурное описание проблемы. Больше похоже на то, что в процессе редактирования где-то была допущена небольшая ошибка. Вроде отсутствия точки с запятой в SQL запросе или что-то ещё подобное.
          АЗ
          • 10 августа 2016 г. 15:49

          Вот оно. Чудо))

          untitled.zip

            Evgenii Legotckoi
            • 11 августа 2016 г. 1:22
            Полагаю, что всё же косяк с применением QSqlTableModel был.
            Приложенный код должен быть рабочим. Может быть ошибка в самой таблице.
              АЗ
              • 11 августа 2016 г. 2:21
              Вот в этом то и парадокс, что таблица тоже рабочая. Ставлю вместо обычной модели свою. И вуаля все работает. Сам код то не меняю. просто подключаю свою модель. Ладно буду разбираться. Наверное где-то что-то упустил. Спасибо огромное за ваш труд.

                Комментарии

                Только авторизованные пользователи могут публиковать комментарии.
                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                Ua

                Qt - Тест 001. Сигналы и слоты

                • Результат:84баллов,
                • Очки рейтинга4
                Ua

                Qt - Тест 001. Сигналы и слоты

                • Результат:42баллов,
                • Очки рейтинга-8
                ОК

                Qt - Тест 001. Сигналы и слоты

                • Результат:47баллов,
                • Очки рейтинга-6
                Последние комментарии
                ИМ
                Игорь Максимов22 ноября 2024 г. 21:51
                Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii Legotckoi31 октября 2024 г. 23:37
                Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZE19 октября 2024 г. 17:19
                Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь Максимов5 октября 2024 г. 16:51
                Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas55 июля 2024 г. 20:02
                QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Сейчас обсуждают на форуме
                f
                firstlunoxod15 февраля 2025 г. 13:46
                Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
                Дмитрий
                Дмитрий3 февраля 2025 г. 16:24
                Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
                NW
                Nayo Wai30 января 2025 г. 19:22
                не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
                n
                nkly3 января 2025 г. 12:52
                Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
                M
                Marsel17 августа 2023 г. 0:26
                OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

                Следите за нами в социальных сетях