Программирование

QSqlError - Parameter count mismatch

Сегодня полчаса парился с куском кода

   QSqlQuery q;
    q.prepare("UDATE urls SET site=? WHERE id=?");
    q.addBindValue(host);
    q.addBindValue(id);

Возвращал ошибку "Parameter count mismatch" - долго смотрел на код, туда - сюда. Оказалось, что слово UPDATE написано не правильно - вот так бывает.

QT: Как запустить браузер по умолчанию

Возникла задачка запустить браузер по двойному клику на таблице. Долго искал как это сделать, и нашел. Функция:

QDesktopServices::openUrl

PS: иногда нужные функции или долго ищещь или не знаеешь как найти.

Генератор отчетов для QT - eXaro

Наткнулся в форуме на то, что люди используют eXaro, решил посмотреть, что за продукт. По ссылке http://code.google.com/p/exaro/ написано, что это типа свободный LGPL движек для генерации отчетов, типа Jasper или Crystal Reports. И самое главное разработан он специально для Qt-шников.

Аналог trim в C++

Иногда возникаеть необходимость удалить из переменной типа std::string пробелы слева и справа. В классе string для этого методов, к сожалению нет. Для себя я набросал пару функций:

//проверка символа на разделитель
bool is_del(char c)
{
    if(c==' ' || c=='\t' || c==';' || c==',' || c=='=' || c==':' || c=='\n') return true;
    return false;
}

Работа с битами

Всегда забываю про работу с битами. Вот написал себе небольшую шпаргалку.

Если я хочу включить бит pos в байте byte:

byte |= 1 << pos;

Выключить бит pos в байте byte

byte &= ~(1 << pos);

Изменить бит числа byte в позиции pos на противоположный:

byte ^= 1 << pos.

Qt 4.5.1 и Windows

Собрал свежую версию Qt 4.5.1. Но под виндой начались какие то глюки. Причем само QT не глючит, а заключил именно QWT. Я использую VS2008 для сборки QT и QWT. Глюки примерно такие - QWT lib файл создался размером 101 мегобайт и программа теперь падает на этапе вызова setupUI.

Короче откатился я на QT 4.5.0. Все работает стабильно. Пока на нем и остался.

Памятка по использованию QWT

Как вы знаете QWT библиотека для вывода графиков. Она распространятся по лицензии LGPL. Тоесть для коммерческих проектов ее нужно собирать как DLL. Я же обычно собираю ее как lib, что бы не возиться с лишней DLLки.

Для сборки QWT как DLL ничего делать не нужно. Но нужно обязательно добавить в свою программу дефайн QWT_DLL. Иначе будут проблемы при линковке.

Для сборки QWT как LIB, идем в файлик qwtconfig.pri и коментируем строчку

CONFIG += QwtDll

и собираем.

RSS-материал