Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: PavelVX от Сентябрь 12, 2011, 08:08



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


Название: Re: панелька управления записями в БД, как правильнее, оптимальнее?
Отправлено: alexman от Сентябрь 12, 2011, 08:13
Причем тут БД? Это вопрос по организации интерфейса (без говнокода).


Название: Re: панелька управления записями в БД, как правильнее, оптимальнее?
Отправлено: PavelVX от Сентябрь 12, 2011, 09:32
Поэтому и написал вопрос в этой ветке. Или я не прав? Описал из-за чего возник вопрос, и что хотелось бы.


Название: Re: панелька управления записями в БД, как правильнее, оптимальнее?
Отправлено: alexman от Сентябрь 12, 2011, 09:38
Ветка та. Только причем тут БД...


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

Цитировать
- Как точно определить, кто должен обрабатывать испускаемые сигналы?
При обработке события делай disconnect от слота, что не актуален, делай connect к слоту, что актуален.


Название: Re: панелька управления записями в БД, как правильнее, оптимальнее?
Отправлено: Pretorean от Сентябрь 19, 2011, 23:56
Это ты мечтаешь о DBNavigator из Delphi?