Обо мне

Моя фотография
Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!

четверг, 28 апреля 2011 г.

[Qt] Минимум информации при сборке

Собственно сабж. В файл проекта (.pro) добавьте в секцию CONFIG опцию silent.

Сегодня буду краток 

среда, 27 апреля 2011 г.

[Быт] И все-таки... Как починить ручку в Chicco Tech 6 wd. Часть 2. Заключительная

После того, как мы разобрали саму ручку в предыдущей заметке, хотел бы дать некоторые объяснения почему же все-таки ручка не держалась в одном положении, а кнопки запали. Все дело в том, что, возможно при сборке, когда-то вы достаточно сильно и резко надавили на ручку, из-за чего произошла деформация одной из "ножек" кнопки, что одновременно не давало кнопке отщелкнуться и дать большой белой шестеренке-сердцевине, отталкиваемой от другой стенки ручки, стать на свое место, не давая ручке заблокировать свое положение.

Таким образом, разобрав ручку - уберите пластиковые кнопки.

суббота, 23 апреля 2011 г.

[Быт] Поломалась ручка в коляске Chicco Tech 6 wd. Как починить

Столкнулись с такой проблемой, как поломка ручки в коляске Chicco Tech 6 wd - перестала держаться, болтается сверху вниз, кнопки запали и не отжимаются. Разобрать не представлялось возможным, инструкций, руководств или хотя бы подсказок в интернете тоже не нашлось. Вчера наконец разобрались как быть. В нашем случае, пришлось просверлить пластиковую кнопку по центру (можно сделать шилом). Прямо по центру находится шуруп, открутив который ручка быстро разбирается. Далее уже на что фантазии хватит


[Qt] Сборка vlc-qt. Пошагово. Часть 1

Сегодня я хотел бы рассказать о том, как можно собрать и использовать в своем проекте замечательную библиотеку vlc-qt, посредством которой становится возможным воспроизведение любых мультимедийных файлов.

1. Скачиваем саму библиотеку vlc-qt по ссылке http://qt-apps.org/content/show.php/VLC-Qt+library?content=133649

2. Скачиваем исходный код проигрывателя VLC по ссылке http://sourceforge.net/projects/vlc/files/1.1.9/vlc-1.1.9.tar.bz2/download, а также собранный дистрибутив проигрывателя, который сразу же устанавливаем.

3. Скачиваем дистрибутив CMake, который понадобится нам для сборки библиотеки по ссылке http://www.cmake.org/cmake/resources/software.html

4. Убеждаемся в том, что у нас в системе есть библиотека Qt, компилятор mingw32 и, что пути к ним прописаны в системном PATH.

5. Создаем директорию, например, D:\VLC

6. Распаковываем в нее исходники библиотеки vlc-qt, которую скачали в п.1 (у нас должно получиться D:\vlc\libvlc-qt-0.5.0\)

7. Из исходников VLC копируем (распаковываем) папку vlc, которая находится в папке vlc-1.1.9\include\vlc в D:\vlc\libvlc-qt-0.5.0\src (должно получиться D:\vlc\libvlc-qt-0.5.0\src\vlc)

8. Создаем каталог D:/vlc/libvlc-qt-0.5.0/build

9. Устанавливаем Cmake и запускаем cmake gui

10. "Where is the source code" нажимаем кнопку Browse Source и выбираем каталог D:/vlc/libvlc-qt-0.5.0

11. "Where to build the binaries" нажимаем кнопку Browse Build ... и выбираем каталог D:/vlc/libvlc-qt-0.5.0/build

12. Нажимаем кнопку Configure

13. Получаем ошибку. Не расстраиваемся и делаем все в соответствии с изображением из следующего пункта

14.

Смысл в том, чтобы для поля LIBVLC_INCLUDE_DIR выбрать в качестве параметра директорию D:/vlc/libvlc-qt-0.5.0/src/vlc (то есть ту папку в которую мы копировали заголовочные файлы из архива с исходниками самого проигрывателя)

Для параметра LIBVLCCORE_LIBRARY выбираем библиотеку C:/Program Files/VideoLAN/VLC/libvlccore.dll, которая установилась с проигрывателем VLC из п. 2

Для параметра LIBVLC_LIBRARY выбираем библиотеку C:/Program Files/VideoLAN/VLC/libvlc.dll, которая установилась с проигрывателем VLC из п. 2

Установленные библиотеки нужны для линковки.

15. Снова нажимаем Configure

16. Нажимаем на кнопку Generate

17. Закрываем Cmake

18. Открываем командную консоль (Меню Пуск-Выполнить-cmd либо через Total Commander, если пользуетесь им, Open Terminal Here)

19. В консоли переходим в нужный нам каталог, если не перешли ранее, cd D:/vlc/libvlc-qt-0.5.0/build

20. Собираем библиотеку. В консоли вводим команду mingw32-make (при условии, что путь к компилятору у вас добавлен в PATH, либо пишете полный путь к компилятору D:\Qt\2010.05\mingw\bin\mingw32-make.exe

21. ждите

22. Вроде собралось без ошибок.

Всё, на этом сборка собственной библиотеки закончилась. На днях я подробно расскажу о том, как подключить к своему проекту данную библиотеку. Для нетерпеливых рекомендую ознакомиться с примерами vlc-qt. Там все ясно и понятно.

Обсуждение на Russian Qt forum

Постоянный партнер блога:

Профессиональные услуги адвоката в Минске. Абрамович В.А. Корректировка таможенной стоимости. Защита интересов в хозяйственных судах. Признание и приведение в исполнение судебных постановлений иностранных судов на территории Республики Беларусь. - Abramovich.by

Syntax Code Highlighter

Долгие попытки найти достойный онлайн-сервис для подсветки кода, наконец-то, увенчались успехом - pastebin.com удовлетворяет всем потребностям.

[Qt] Рисуем сетку в *view при помощи QStyledItemDelegate

Как нарисовать сетку в QTreeView, -Widget и так далее? Достаточно просто и есть даже несколько примеров из состава Qt на основе QItemDelegate. Однако минусом такой реализации будет являться то, что при использовании вышеназванного делегата становится невозможным использование Qt StyleSheet (qss) вкупе с View. Для использования со стандартным стилем самими разработчиками рекомендуется использование QStyledItemDelegate.

Таким образом, нарисуем сетку:

gridlinedelegate.cpp


gridlinedelegate.h

четверг, 21 апреля 2011 г.

[Qt] очистка QHeaderView

Возникла ситуация, когда один и тот же QTreeWidget необходимо использовать для отображения различных данных с разным количеством столбцов в зависимости от ситуации. Как таковой функции clear() у QHeaderView нет, а использование reset() к желаемому результату не приводит, и столбцы не очищаются.

Решением в данной ситуации является использование treeWidget->setColumnCount(0) перед отображением новых данных.

понедельник, 18 апреля 2011 г.

Инфо-Киоск

Вот, собственно, внешний вид моего информационного киоска:


[Qt] запрет выделения текста в QWebView

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

frame->evaluateJavaScript("document.onselectstart=function() {return false}");

пятница, 15 апреля 2011 г.

[Qt] скрытие полос прокрутки в QWebView

Сейчас активно переписываю свой информационный киоск для хозяйственного суда с Delphi на Qt. Одним из элементов отображения текстовой информации я выбрал QWebView (webkit).

Важным условием просмотра информации являлся программный скролл и отсутствие видимых полос прокрутки - второе достигается достаточно просто:

QWebFrame* frame = browser->page()->mainFrame();
frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
аrame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);


пятница, 8 апреля 2011 г.

суббота, 2 апреля 2011 г.

[Qt] Тень используя QGraphicsDropShadowEffect

Если Вас интересует как в Qt можно добавить тень к любому виджету, то вот, например, так:

QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(this);
shadowEffect->setBlurRadius(6);
shadowEffect->setOffset(3);
ui->topNameLabel->setGraphicsEffect(shadowEffect);

Согласитесь, проще некуда! :)

пятница, 1 апреля 2011 г.

[Qt] Создание красивого всплывающего окошка OSD

Для своей программки LinForismatic, отображающей цитаты на рабочем столе, понадобилось выводить красивые всплывающие окошки содержащие произвольный текст и, по мере необходимости, небольшое изображение-иконку.

Под линуксом с этим проблем нет - libnotify поможет всем. Однако хотелось кросс-платформенного решения, под определение которого подпадал widget для вывода OSD из состава музыкального проигрывателя Clementine.

Немного порывшись в исходном коде проигрывателя нужные классы были найдены. Единственное чего не хватало в реализации, так это установление произвольного шрифта - что я и добавил, собственно в этот widget.

В итоге получаем:


Если кому интересно, то я выложил отдельный архив:
http://dl.dropbox.com/u/6896945/prettyosd.zip

Использовать можно следующим образом:

osd = new OSDPretty(OSDPretty::Mode_Popup);
osd->set_fading_enabled(true);
QFont font("Tahoma",11);
osd->setOsdFont(font);
osd->set_popup_duration(20000);
osd->SetMessage(name,text,QImage());
osd->show();