|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.01.2010, 03:36 | #1 |
Новичок
Джуниор
Регистрация: 25.01.2010
Сообщений: 1
|
построение модели одного приложения
уткнулся тут носом в проблему модели приложения, использующего классы и функционал qt 4.6.
пытаюсь написать клиент для БД и на данный момент имею следующие классы: 1. MainWindow, наследуемый от QMainWindows. Главное окно программы. запускается непосредственно из main.cpp: Код:
Код:
в самом Database присутствуют публичные указатели на такие вещи как QSqlDatabase и QSqlQuery, необходимые для работы с БД. я рассуждаю так: по идее экземпляр Database или указатель на него должен быть доступен из прочих экземпляров (MainWindow, Dialog_userManagment и прочих, что появятся в будущем), поскольку возможность обратиться к БД с помощью экземпляра Database будет нужна в те моменты, когда код будет исполнятся в этих местах. самое логичное - воспользоваться механизмом сигналов-слотов, но есть следующая загвоздка: QObject::connect(...), соединяющий сигналы со слотом, требует указатели на экземпляр класса, испускающего сигнал (MainWindow или Dialog_userManagment) и на экземпляр класса с принимающим слотом (Database). в каком же месте кода я могу использовать QObject::connect(...), поскольку ни в одном из классов указатель на Database у меня не задаётся? или же необходимо в каждом классе делать подобный указатель и при переходах в диалоговые окна передавать им его? если да, то в этом случае также придётся инклюдить перед описанием каждого класса "database.h". и в этом h-файле задан #ifdef, мне почему-то свербит и кажется, что это не наилучший вариант развития событий. Последний раз редактировалось fzfx; 25.01.2010 в 03:38. |
25.01.2010, 04:05 | #2 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Или так, или можно в классе MainWindow сделать публичный указатель, который будет инициализироваться в момент создания объекта класса базы данных. И в последствии все классы, которым необходим этот указатель могу обращаться к члену MainWindow
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Построение с помощью CASE-средств Rational Rose модели программного обеспечения | GrafVovanDOS | Помощь студентам | 1 | 20.12.2009 21:53 |
Передать информацию из одного приложения вдругое | Sergey2 | Общие вопросы Delphi | 2 | 11.10.2009 00:04 |
Две иконки в трее одного приложения | Shouldercannon | Общие вопросы Delphi | 1 | 18.06.2009 20:48 |
Вызов одного приложения из другого | zalum | Общие вопросы Delphi | 8 | 24.04.2009 10:05 |
Как различить два процесса одного приложения? | viter.alex | Win Api | 1 | 31.03.2009 21:01 |