![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_DaniMinch_* |
![]()
Сообщение
#1
|
Гости ![]() |
Всем привет. Необходимо сделать программу, в ходе которой данные из разных таблиц одной БД раскидываются по вкладкам QTabWidget. Для этого создан класс Database в котором подключается БД MS access, и теоретически изменяется таблица в модели. Однако, методом проб и ошибок я выяснил, что представления не имею как подключить модель к Бд. Я недавно начал работать с Qt и С++, поэтому подключение конструктором представляет для меня некоторые сложности, так как все мои попытки его сформировать приводили к тьме ошибок. Код класса, main, и функции смены вкладок прилагаются.
Database.h
Database.cpp
Функция
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Для этого создан класс Database Класс этот стоит выкинуть или переименовать или переделать, ... т.к. возникает смысловая коллизия с названием штатного класса - QSqlDatabase.Модель у тебя объявлена на стеке: А используется почему-то как указатель на модель:
Тебе достаточно объявить указатель на модель в классе TheatreWindow.
В конструкторе этого класса инициализировать указатель на модель:
П.С. Т.к. пользователь будет переключатся между вкладками, то тебе лучше завести столько моделей, сколько таблиц ты хочешь отображать. Это сразу съест некоторое кол-во памяти (для хранения данных модели), но не будет тратиться время на загрузку данных в единственную модель всякий раз при переключении вкладок. |
|
|
Гость_DaniMinch_* |
![]()
Сообщение
#3
|
Гости ![]() |
Litkevich Yuriy,
спасибо, вроде все понял. Класс удалил, перенес создание базы данных в конструктор TheatreWindow. Установку моделей и таблиц оставил в функции смене вкладок. Однако, я не уверен, что имеет смысл создавать множество моделей. Будут разделены права доступа к программе и доступ ко всем вкладкам будет лишь у одного пользователя. Остальным бужет доступна лишь пара-тройка различных. К тому же задержка вроде бы не заметна. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.4.2025, 14:56 |