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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: dulldbtools (C++, Qt4, libxml2, libpq)  (Прочитано 2643 раз)
somebyte
Гость
« : Май 31, 2011, 09:41 »

Здравствуйте!
Хочу представить свою библиотечку dulldbtools.
Она позволяет достаточно быстро строить GUI-приложения к СУБД Postgres. Такие вещи, как деревья и таблицы, с возможностью редактирования. Для этого пользователю достаточно составить xml-описание и подсунуть его объекту-виджету при создании. Всё довольно просто. В исходниках есть примеры. Библиотека компилируется под mingw и msvc. На выходе dll. До проверки в *nix, к сожалению, руки не доходят. Примеры компилируются вместе с библиотекой и падают в каталог bin. К сожалению документации пока никакой нет.

Для отображения таблиц используется класс наследуемый от QTableView.
Для отображения деревьев используется класс наследуемый от QTreeView.
Оба класса получают данные от моделей на основе QAbstractItemModel, которые получаю настройки из xml.
Описание этих классов в qt_dbtools.hpp.

Вот ссылка на svn. Как правило там код рабочий.
И ссылка на мой ЖЖ. Там просто крайние новости.
Распространяется на условиях GPL.
Спасибо за внимание.

P.S. Пока поддерживается только PostgreSQL, но в планах поддержка sqlite. Осенью.
Записан
somebyte
Гость
« Ответ #1 : Июнь 03, 2011, 17:43 »

Увидила свет dulldbtools-0.0.53. Веселый
Из новшеств. Сделаны дополнительные конструкторы для qt_dbtableview и qt_dbtreeview. Они позволяют размещать соотвествующее xml-описание, как часть другого xml-файла.
Сделаны дполнителные классы qt_dbtablemenu и qt_dbtreemenu, которые пользволяют соединить соотвественно qt_dbtableview или qt_dbtreeview c qt_dbdialog, для добавление, редактирования, удаления данных черех контекстное меню. Т.е. объекты типа QAction добавляются в qt_dbtableview или qt_dbtreeview и их от туда всегда можно вытащить, при помощи метода actions(), для переопределения стандартных названий в меню. Кроме того qt_dbtablemenu и qt_dbtreemenu сделаны таким образом чтобы не мешать программеру иметь дополнительно свои пункты в меню.

Привожу пример, как создаётся простая таблица при помощи dulldbtools:

// WareHouseTable

WareHouseTable :: WareHouseTable (const QString& title, QWidget* parent, Qt::WindowFlags f)
: QDockWidget(title, parent, f), _db(0), _view(0), _dialog(0), _menu(0) {
  setFeatures(QDockWidget::DockWidgetMovable);
  _db = new pgdb("pg_warehouse");
  if (_db->open()) {
    _view = new qt_dbtableview(".\\xml\\images\\warehouse_table.xml", "/table", _db);
    _dialog  = new qt_dbdialog(".\\xml\\images\\warehouse_table.xml", "/table", _db, this);
    _menu = new qt_dbtablemenu(_view, _dialog);
    setWidget(_view);
  } else
    _lprintf(LOG_ERR, "%s\n", _db->last_error());
}

WareHouseTable :: ~WareHouseTable() {
  delete _menu;
  delete _view;
  delete _dialog;
  delete _db;
}

Подробнее можно посмотреть в исходниках примера "warehouse". И если есть вопросы задать здесь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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