Russian Qt Forum
Сентябрь 30, 2024, 22:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: панелька управления записями в БД, как правильнее, оптимальнее?  (Прочитано 3276 раз)
PavelVX
Гость
« : Сентябрь 12, 2011, 08:08 »

есть приложение работающее с БД, формы в нем реализованы через QDockWidget->QTableView, но думаю это не принципиально.
Как правильно/оптимально реализовать кнопочки управления записями в БД(добавить/удалить/сохранить/отменить и тд).
Я вижу три варианта:
1. На самом виджете. Самое громоздкое и непривильное. Укладываем на виджет кнопочки, коннекты, слоты и все довольны, для каждой формы делаем все заново.
2. Создаем свой виджет с кнопочками. Укладываем его на свою форму. Через свойства скрываем ненужные кнопки. Через коннекты связываем сигналы с данного виджета со слотами в форме. Тут возникает вопрос: как правильно в виджете генерировать сигналы с разных кнопок?
3. Создаем свою панельку в ToolBars (самый правильный!). Привязываем его сигналы к своим слотам. В зависимости от того. в каком доквиджете находится фокус, там и обрабатывать сигнал. Тут куча вопросов.
 - Как динамически, в зависимости от активного виджета не показывать, дизаблить неприменимые к  данному виджету действия?
 - Как точно определить, кто должен обрабатывать испускаемые сигналы?
Наверняка, те кто работает с БД уже решали данный вопрос. Не хотелось бы делать неправильно, а потом переделывать.
Записан
alexman
Гость
« Ответ #1 : Сентябрь 12, 2011, 08:13 »

Причем тут БД? Это вопрос по организации интерфейса (без говнокода).
Записан
PavelVX
Гость
« Ответ #2 : Сентябрь 12, 2011, 09:32 »

Поэтому и написал вопрос в этой ветке. Или я не прав? Описал из-за чего возник вопрос, и что хотелось бы.
Записан
alexman
Гость
« Ответ #3 : Сентябрь 12, 2011, 09:38 »

Ветка та. Только причем тут БД...
Записан
alexman
Гость
« Ответ #4 : Сентябрь 12, 2011, 10:08 »

Цитировать
- Как динамически, в зависимости от активного виджета не показывать, дизаблить неприменимые к  данному виджету действия?
Можно события отлавливать от доков. См:
Код:
void QObject::installEventFilter ( QObject * filterObj )
bool QObject::eventFilter ( QObject * watched, QEvent * event ) [virtual]

Цитировать
- Как точно определить, кто должен обрабатывать испускаемые сигналы?
При обработке события делай disconnect от слота, что не актуален, делай connect к слоту, что актуален.
Записан
Pretorean
Гость
« Ответ #5 : Сентябрь 19, 2011, 23:56 »

Это ты мечтаешь о DBNavigator из Delphi?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 20.