Сегодня короткая статья о том как сделать колонки только для чтения (ReadOnly) в QTableView через модель.
И так определяем клас модели. В класе модели нужно переопределить метод flag:
1: class MyModel : public QSqlTableModel //Model
2: {
3: Q_OBJECT
4: public
5: MyModel(QObject * parent = 0, QSqlDatabase db = QSqlDatabase());
6: Qt::ItemFlags flags(const QModelIndex &index) const; //В этой функции запрещаются колонки на редактирование
7: //...
8: };
Реализовываем виртуальный метод flag:
1: Qt::ItemFlags MyModel::flags(const QModelIndex &index) const
2: {
3: Qt::ItemFlags flags = QSqlQueryModel::(index);
4: if (index.column() == 5 || index.column() == 9 ||
5: index.column() == 10)
6: flags |= Qt::ItemIsEditable;
7: return flags;
8: }
Колонки 5, 9, 10 (нумерация колонок начинается с 0) можно редактировать все остальные поля только ReadOnly.
Теперь подключаем модель:
1: modelMain = new MyModel;
2: modelMain->setTable("TableTemp");
3: //...
4: modelMain->select();
5: modelMain->setEditStrategy(QSqlTableModel::OnFieldChange);
6: m_ui->tableView->setModel(modelMain);
Вот простейшая реализация задачи задания ReadOnly полей. С вопросами прошу в комменты.
bd547e06-3d5d-4a3f-afe7-b50712e780a1|1|5.0
Вышел релиз знаменитой кросплатформенной IDE Qt Creator 2.0. Основные изменения связаны с поддержкой Symbian и MeeGo. Скачать можно здесь.
dbabfa9b-1ec1-4c6c-953e-ac731870c97d|1|5.0
Сегодня я раскажу как вставить HTML страницу в DLL. Пример будет продемонстрирован посредством использования Delphi 7.
Иногда возникает необходимость вставить ресурсы в DLL файл (например для предотвращения случайного удаление ресурса, или для того чтобы защитить ресурс от изменения).
Для начала создайте простую HTML страницу, для примера создайте страницу с одним изображением (в ресурс мы будем вставлять и изображение). Назовём этот файл index1.html. Ниже указано как мы будем получать доступ к изображению из html страници, HTML код выглядит следующим образом:
1: <HTML>
2: <HEAD>
3: <TITLE>My HTML</TITLE>
4: </HEAD>
5: <BODY>
6: This is a HTML in DLL<br>
7: <img src="MYIMG" width=100 height=100 border=0 alt="">
8: </BODY>
9: </HTML>
Теперь займемся файлом ресурсов. Необходимо создать новый текстовый файл в директории вашего проекта с расширением *.rc, назовем его например MyHTML.rc. После этого добавте следующие строки в файл MyHTML.rc. Обратите внимание название ресурса должно совпадать с именем файла (это из-за того что броузер не понимает такого расширения файла), за исключением того что точку brcc не понимает нужно поставить подчеркивание (позднее я обьясню что нужно делать с подчеркиванием)
index1_html (23) "index1.html"
MYIMG GIF "my.gif"
Следующий шаг - компиляция файла ресурса. Выполните следующую команду в директории Вашего проекта:
BRCC32 MyHTML.RC
Результатом выполнения команды будет собраный файл MyHTML.RES. Теперь заменим подчеркивание на точку в заголовке нашего собраного *.RES файла. Для этого нужно найти строку "i n d e x 1 _ h t m l", изаменить подчеркивание на точку. Теперь можно добавить собраный файл ресурса в Ваш проект, для этого добавьте следующую директиву компилятора в unit проекта:
{$R MyHTML.RES}
Далее собираем наш DLL. Чтобы запустить в браузере введите команду:
res://c:\myhtml.dll/index1.html
768efae5-3f3a-44cb-bd47-9f88d9060343|1|5.0
eXaro - инструмент построения отчетов, который распространяется по лицензии LGPL. Сегодня речь пойдет о установке eXaro в Windows. Для этого нужно установить некоторые дополнительные пакеты и собственно сам инструмент CMake, с помощью которого мы будем устанавливать пакеты и eXaro. Берем CMake здесь, устанавливаем и переходим к установке дополнительных пакетов.
Скачиваем zlib, просто распаковываем (устанавливать не надо) архив, у меня это C:\libs\zlib.
Далее ставим пакет quazip специально заточен под cmake. В cmake нужно добавить параметры: ZLIB_INCLUDE_DIR = C:\libs\zlib\include; ZLIB_LIBRARY = C:\libs\zlib\lib\libz.dll.a. При конфигурации выбрать компилятор MinGW. Если возникает ошибка, "...install Library TARGETS given no DESTINATION!", то тогда в файле quazip/CMakeLists.txt находим строку "install(TARGETS quazip LIBRARY DESTINATION lib)" и вытираем слово LIBRARY. Снова пробуем конфигурировать в CMake, при успешной кнфигурации, нажимаем кнопку Generate. Теперь можно собирать, переходим в папку которую вы указали в cmake для генерации либов и вызываем mingw32-make. Библиотеки собраны, переходим к следующему шагу.
Скачиваем libpng, процес установки не отличается от установки quazip.
Property Editor, zint аналогично как quazip.
Далее устанавливаем eXaro, задаем все переменные которые будут выводится красным при конфигурировании в CMake, это пути на дополнительные пакеты которые мы собрали. На этом все. Если есть вопросы, прошу в комменты.
dae29ee0-8ae6-4c9d-a15d-7956d157753c|2|5.0
Qt 4.7.0 Beta1 теперь доступна для скачивания на странице загрузки Qt. Бета-версия включает в себя оба источника пакета (.zip и. tar.gz формат) и бинарные пакеты (для Mac Cocoa, Mac Carbon, MinGW 4.4.0 и Visual Studio 2008).
Больше месяца прошло с момента выпуска 2.0 альфа-релиза QtCreator. Скачать можно тоже на странице загрузки Qt.
789018fb-318a-4a0c-860a-50f73a6a0ca5|1|5.0

марта 28, 2010 17:20 by
cya-st
Сегодняшняя статья о системе управления проектами ClockingIT, которым сам пользуюсь. Очень неплохой динамичный интерфейс, профессиональный дизайн.
Чтобы начать использовать сервис нужно зарегистрироваться как юридическое лицо, команда или просто коллектив единомышленников. Регистрация, заключается в указании названия аккаунта для компании. Доступ к аккаунту осуществляется посредством обращения на сервер по адресу <название>.clockingit.com. Далее компанию можно наполнять сотрудниками, которые могут авторизироваться в системе и работать параллельно, для этого нужно настроить профили компании и сотрудников. Далее создаем проект. Созданный проект попадает в общий список, где показываются участники, срок выполнения, текущий этап реализации.
Центральным элементом системы является задача. Элементы проектов представлены сразу, а не внутри проекта. Т.е. чтобы добраться до файла, нужно идти не в проект->файлы->имя файла, а файлы->имя файла(принадлежит проекту). Можно создавать виды по заданным фильтрам, например, по определенному проекту и сотруднику. На странице обзора, с помощью виджетов можно просматривать полезные диаграммы (например, burnup/burndown, статистику по задачам и др. В системе есть форум для создателей проекта, вики (правда общий для всех проектов), удобная система напоминаний с отправкой сообщения на E-Mail, задачам можно задать таймер, есть файловое хранилище, чат и многое еще удобных функций.
В общем сервис мне понравился, отличный бесплатный сервис управления проектами.
21ec19c1-06db-4254-b959-b88b470db412|2|5.0