Могу ли я установить соединения с базой данных в Qt без написания кода (как в Delphi)? - PullRequest
2 голосов
/ 17 ноября 2010

Хотя писать на C ++ сравнительно сложно, чем на Pascal, меня действительно привлекает многоплатформенная поддержка Qt.Я могу подключиться к серверу MSSQL, работающему на сервере Win2003 из Linux, или подключиться к серверу PostGreSQL, работающему в Linux.Это было плюсом по сравнению с Delphi.

Я пытаюсь написать примеры программ, чтобы привыкнуть к Qt и C ++.Пока что я доволен механизмом раскладок и сигналов и слотов (все равно дважды нажимаю кнопки, чтобы написать код события :)).Я бы хотел использовать данные SQL в своих программах так же легко, как в Delphi.

Есть ли способ, которым я могу поместить какой-либо объект соединения, DataSource, DBGrid и DBNavigator в форму и продолжать без написания кода?(Для некоторых форм это действительно экономит время, проект с 300+ формами может быть выполнен быстрее)

Я хотел бы услышать от людей, использующих Qt с данными с серверов SQL.

1 Ответ

2 голосов
/ 17 ноября 2010

Вы должны написать свои собственные плагины дизайнера, чтобы сделать это и сделать ваши виджеты невидимыми, так как в Qt Designer нет прямой поддержки не графических компонентов.

Тем не менее, написание явного кода на Qt (который на самом деле намного менее трудоемок, чем в большинстве других сред программирования) помогает программе оставаться читабельной. Проекты Delphi с большим количеством форм и компонентов, как правило, становятся доступными для чтения только автору, потому что зависимости часто перепрыгивают через файлы. Если вы храните свои формы в двоичном формате, вы все равно потерялись, потому что тогда вы не можете выполнить поиск в своем текстовом проекте, чтобы найти зависимости.

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

Так что, к сожалению, на данный момент вы одни.

...