Удобное автоматическое форматирование кода, в данном случае проставление indent'ов (отступов) в Eclipse, доступно по-умолчанию. Достаточно выделить весь текст (Ctrl+A) и нажать сочетание клавиш Ctrl+I.
Обо мне
- Stedy
- Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!
суббота, 5 ноября 2011 г.
четверг, 3 ноября 2011 г.
[Разное] Домены .tk
Автор:
Stedy
на
16:40
На сайте http://www.dot.tk/ru/index.html?lang=ru можно зарегистрировать любой домен .tk бесплатно, на срок до года.
У блога теперь есть адрес http://slowtone.tk и http://judicial.tk
У блога теперь есть адрес http://slowtone.tk и http://judicial.tk
[Разное] цитата
Автор:
Stedy
на
15:17
Программист с прошлого места работы написал в аську:
"Хорошо пишешь. Грамотно и аккуратно. Я, увы, не так"
Приятно слышать, но... не про меня :)
"Хорошо пишешь. Грамотно и аккуратно. Я, увы, не так"
Приятно слышать, но... не про меня :)
понедельник, 31 октября 2011 г.
[Amazon Kindle] пару слов
Автор:
Stedy
на
09:22
Обзоров о замечательной
электронной читалке Amazon Kindle в сети достаточно много. Поэтому не ожидайте увидеть здесь
нечто новое – всего лишь субъективные впечатления. В первый раз вживую
устройство подобного рода я увидел у друга – был это новенький на то время nook. До этого опыт чтения
электронных книг у нас уже имелся – на компьютере и на маленьком экране
телефона посредством программы ReadManiac.
Но специализированное устройство – это было необычно! И удобно.
И вот, наконец-то, я созрел для
приобретения сего девайса: было прочитано море информации, обзоров и сравнений.
Выбор пал на киндл. К тому времени актуальной была последняя модификация
читалки, выпущенная в 2011 году. Покупать дорогую не хотелось – выбрал вариант,
который в Америки стоил 79 – рекламный. Поначалу сам факт наличия в названии
приставки «рекламный» настораживал, однако после прочтения некоторых
комментариев на форумах все сомнения были развеяны.
Подходящий продавец был найден на
онлайнере. Заказ был сделан. Буквально через неделю в руках я держал
запечатанную коробочку с новый, на этот раз, своим киндлом. Комплект, честно
говоря, спартанский – читалка, кабель usb и карточка со ссылкой на лицензионное
соглашение. Всё! Больше ничего.
Первый запуск достаточно долгий,
но после устройство всегда отправляется в режим ожидания, во время которого
отображает скринсейвер (хранитель экрана) с той самой пресловутой рекламой. Что
представляет из себя реклама – да ничего особенного – просто красивая произвольная
картинка без каких-либо надписей. Это могут быть карандаши, кубики, ручки и
т.д. Не напрягает.
Для закачки книжек на киндл
скачал и установил calibre, которая может автоматически работать с читалкой,
конвертируя нужную вам электронную книгу во внутренний формат mobi.
Пролистывание страниц быстрое.
Удобным оказалось расположение боковых клавиш, а также отсутствие клавиатуры,
как в старых версиях. После определенного времени бездействия автоматически
переходит в режим ожидания.
воскресенье, 30 октября 2011 г.
Ностальгируем 1
Автор:
Stedy
на
01:04
Что-то захотелось немного поностальгировать, вдохнуть немного жизни в свой ежедневник.
Когда-то, как сейчас представляется, очень давно лет 10 назад, когда у меня появился первый компьютер, мне, как и большинству моих ровесников (14 лет), первым делом хотелось только одного играть в компьютерные игры. Оно и понятно - слишком долго мечталось о, как тогда казалось, недостижимом - собственном компьютере. Помню в каком восторге пребывал, когда изредка удавалось попасть к тете на работу и поиграть в летный симулятор на рабочем компьютере, либо сходить в компьютерный клуб и погонять в Jazz Rabbit. А по скольку времени мы обсуждали чей-нибудь компьютер...
суббота, 29 октября 2011 г.
По поводу Андроид
Автор:
Stedy
на
23:55
Уважаемые немногочисленные читатели, ежели таковые имеются! Считаю своим долгом сообщить, что всвязи с недавно появившимся интересом к программированию под платформу андроид, отныне помимо заметок о Qt буду также размещать небольшие заметки о программировании под Android.
Спасибо за внимание!
четверг, 27 октября 2011 г.
Amazon Kindle
Автор:
Stedy
на
09:35
Итак, еще одна мечта идиота сбылась. Стал счастливым обладателем
электронной читалки Amazon Kindle?
Тот который в Америке за 79 $. Впечатление – я просто восхищен девайсом, слов
нет! Давно раздумывал о покупке, но только сейчас все-таки решил – надо!
Комплект, конечно, спартанский – сама читалка, кабель для
подзарядки от компа и талон с лицензионным соглашением. Для преобразования книг
из fb2 в mobi скачал
калибри, которая со своими обязанностями справляется на ура!
понедельник, 24 октября 2011 г.
вторник, 18 октября 2011 г.
HandyRecovery - верный помощник в восстановлении файлов
Автор:
Stedy
на
09:49
Довольно редко, но возникает ситуация, когда нужно
восстановить нечаянно удаленные файлы. Существует много программ-помощников: EasyRecovery, GoBack, GetDataBack, Active@Undelete и т.д.
Ранее все пользовался последней из приведенного списка, но в последний раз,
когда понадобилось восстановить несколько файлов ни одна из перечисленных выше
программ не смогла – Первая и последняя файлов почему-то не увидели, а GoBack так
и вовсе подвисла.
Поэтому было принято решение найти что-то новое, простое и
функциональное. После непродолжительных поисков приятно удивила программа-утилита
HandyRecovery, Которую я
скачал в виде portable версии. Работает быстро, файлы показывает с оригинальными
именами. Что еще нужно?!
четверг, 1 сентября 2011 г.
Первая программа
Автор:
Stedy
на
11:54
Совершенно неожиданно на почтовый ящик пришло письмо обменяться ссылками на сайты. При чем некто предлагал поставить ссылку не на этот блог, а на давно-давно забытый сайт http://froozer.narod.ru/, который был сделан в далеком 2003 году и посвящен тогда еще маленькому результату начала увлечения программированием - программе QBookShelf. Я сперва даже обрадовался, так как из-за неполадок винчестера когда-то утратил исходный код первой и второй версии приложения, который нигде более не сохранился. Но, как оказалось, напрасно я радовался - на сайте размещен исходник версии 0.3, которая мало чем отличается от текстового редактора. Однако, для меня все равно представляет ценность, так как это первая моя программа на плюсах, корявая, но родная. Спасибо неведомому спамеру за предоставленную возможность вспомнить и по-ностальгировать. Искренне благодарю.
П.С. Впечатлило название, которое я когда-то придумал для сайта - BookShelf - last russian reader's hope...
П.П.С. На самом деле хоть код и утрачен, но осталась программа-ответвление - KHaaliReader.
пятница, 19 августа 2011 г.
TitleRead - ваш надежный товарищ
Автор:
Stedy
на
10:32
Часто ли у Вас зарождалось подозрение, что кто-то в ваше отсутствие на работе (например, на обеде) использует ваш компьютер без вашего ведома?
Как быть, Вы можете прочитать на страничке моей новой программки
четверг, 18 августа 2011 г.
[Qt, WinApi] получение иконки чужого процесса
Автор:
Stedy
на
16:47
В данной заметке хотел бы показать как просто можно получить иконку чужого процесса.
[Qt, WinApi] получение информации об архитектуре процессора
Автор:
Stedy
на
09:22
QString processorInfo()
{
#if defined(Q_WS_WIN32)
SYSTEM_INFO info;
GetSystemInfo(&info);
switch(info.wProcessorArchitecture)
{
#ifdef PROCESSOR_ARCHITECTURE_AMD64
case PROCESSOR_ARCHITECTURE_AMD64:
return "x86_64";
break;
#endif
case PROCESSOR_ARCHITECTURE_INTEL:
return "x86";
break;
case PROCESSOR_ARCHITECTURE_IA64:
#ifdef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
#endif
return "IA64";
break;
default:
return "Unknown";
break;
}
#endif
return QString();
}
{
#if defined(Q_WS_WIN32)
SYSTEM_INFO info;
GetSystemInfo(&info);
switch(info.wProcessorArchitecture)
{
#ifdef PROCESSOR_ARCHITECTURE_AMD64
case PROCESSOR_ARCHITECTURE_AMD64:
return "x86_64";
break;
#endif
case PROCESSOR_ARCHITECTURE_INTEL:
return "x86";
break;
case PROCESSOR_ARCHITECTURE_IA64:
#ifdef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
#endif
return "IA64";
break;
default:
return "Unknown";
break;
}
#endif
return QString();
}
среда, 17 августа 2011 г.
[Qt, WinApi] получение заголовка активного окна
Автор:
Stedy
на
12:43
Добрый день! Хотел бы разместить несколько небольших заметок об использовании WinApi функций в Qt. Начну, пожалуй, с простого - получение заголовка активного окна.
Не забудьте подключить заголовочный файл qt_windows.h к вашему проекту.
Не забудьте подключить заголовочный файл qt_windows.h к вашему проекту.
пятница, 29 июля 2011 г.
[Delphi, Oracle] Создание информационного табло
Автор:
Stedy
на
15:22
Хотел бы разместить здесь небольшую свою заметку о том, как создавал в свое время систему информационных табло для предыдущего места работы. Оригинал статьи на Хабре
В суде я работаю работал секретарем судебного заседания – помощником судьи, но иногда меня привлекают для участия в более сложных и важных мероприятиях, таких как, например, создание очередного программного обеспечения для внутреннего пользования (замечу сразу - никаким техническим образованием не обладаю).
Так случилось и месяц назад, хотя слухи об этом событии ходили уже давно – одной из важнейших задач, сопровождающих реконструкцию здания, является создание электронной системы распределения залов судебных заседаний, а также написание программы, обеспечивающей вывод информации на плазму и 7 мониторов перед каждым залом судебного заседания.
[Qt] Настройка колонок для QHeaderView в QTreeWidget
Автор:
Stedy
на
11:58
При работе со списками часто возникает необходимость предоставить пользователю возможность настраивать колонки, как это показано на рисунке ниже:
Когда-то очень давно сделал себе такой класс (существует несколько разновидностей, но сегодня выложу для QTreeWidget)
Скачать архив с классом
Использовать достаточно просто:
MenuForHeaderView *mm = new MenuForHeaderView(this);
QMenu *headerMenu= new QMenu;
docTree->header()->addAction(headerMenu->addMenu(mm->createMenu(this, docTree) ));
docTree->header()->setContextMenuPolicy(Qt::ActionsContextMenu);
foo_qip_nowplaying
Автор:
Stedy
на
11:40
Всем привет! В последнее время стали одолевать письмами с просьбой перезалить плагины, в связи с тем, что файлкипер прикрыли.
Вот, пожалуйста:
- foo_qip_nowplaying_0.5.1 English
- foo_qip_nowplaying_0.5.1 Русская версия
Ну, и в качестве бонуса, файл справки:
- Скачать
Вот, пожалуйста:
- foo_qip_nowplaying_0.5.1 English
- foo_qip_nowplaying_0.5.1 Русская версия
Ну, и в качестве бонуса, файл справки:
- Скачать
четверг, 28 июля 2011 г.
[Qt] Создание нового документа MS Word с параметрами по-умолчанию
Автор:
Stedy
на
10:34
Добрый день! Возникла необходимость создать новый документ Microsoft Word с заданными по-умолчанию некоторыми параметрами, например, пароль на открытие файла. Достичь желаемого результата можно очень и очень просто! Нам на помощь опять приходит нет-нет, не Чип и Дейл, а сокровищница знаний MSDN...
четверг, 19 мая 2011 г.
Saladin - двухпанельный файловый менеджер на Qt
Автор:
Stedy
на
14:21
На форумах по программированию часто встречаются топики, в которых разработчики либо интересуются как создать свой собственный, либо представляют на суд общественности уже готовый. Qt-сообщество не является исключением, наверное, на каждого из нас находило вдохновение по написанию собственного файлового менеджера. Под windows двухпанельных менеджеров пруд-пруди, чего стоит один только TotalCommander со своими почти неограниченными возможностями.. Под linux дела обстоят несколько хуже, Total-подобных программ достаточно мало - DoubleCmd, EmelFm, Krusader, который является наиболее удачным аналогом своего windows собрата, однако безбожно увяз в KDE зависимостях. Из интересных проектов, которые были бы написаны на чистом Qt, без разного рода громоздких сторонних зависимостей, в принципе, ничего стоящего не встречается. На нашем дорогом форуме для программистов однажды забрезжил свет надежды в виде PanterCommander, однако проект так завершен и не был. Из созданных исключительно под windows os, честно скажу, заинтересовал лишь один - Saladin, который использует на всю мощь возможности операционной системы и написанный нашим соседом-поляком.
Ознакомиться с возможностями программы вы можете проследовав на официальный сайт, расположенный по адресу - http://saladin.mimec.org/
воскресенье, 1 мая 2011 г.
[Qt] Статическая сборка под windows посредством Microsoft Visual Studio 2008. Это просто!
Автор:
Stedy
на
01:09
Для начала скачиваем с сайта Nokia пакет с исходным кодом библиотеки Qt и распаковываем его.
Затем переходим в данную директорию и открываем командную строку (консоль) из состава Microsoft Visual Studio Command Prompt и запускаем configure.exe со следующими параметрами:
-static
-release
-fast
-no-qt3support
-qt-gif
-qt-libpng
-qt-libmng
-qt-libjpeg
-qt-libtiff
-no-dsp
-no-vcproj
-no-plugin-manifests
-mp
-nomake
demos
-nomake
examples
После того, как процесс конфигурирования будет закончен, вводим команду nmake для запуска сборки. По окончании удалим ненужные созданные в процессе сборки файлы командой nmake confclean.
Затем переходим в данную директорию и открываем командную строку (консоль) из состава Microsoft Visual Studio Command Prompt и запускаем configure.exe со следующими параметрами:
-static
-release
-fast
-no-qt3support
-qt-gif
-qt-libpng
-qt-libmng
-qt-libjpeg
-qt-libtiff
-no-dsp
-no-vcproj
-no-plugin-manifests
-mp
-nomake
demos
-nomake
examples
После того, как процесс конфигурирования будет закончен, вводим команду nmake для запуска сборки. По окончании удалим ненужные созданные в процессе сборки файлы командой nmake confclean.
четверг, 28 апреля 2011 г.
[Qt] Минимум информации при сборке
Автор:
Stedy
на
22:32
Собственно сабж. В файл проекта (.pro) добавьте в секцию CONFIG опцию silent.
Сегодня буду краток
Сегодня буду краток
среда, 27 апреля 2011 г.
[Быт] И все-таки... Как починить ручку в Chicco Tech 6 wd. Часть 2. Заключительная
Автор:
Stedy
на
20:46
После того, как мы разобрали саму ручку в предыдущей заметке, хотел бы дать некоторые объяснения почему же все-таки ручка не держалась в одном положении, а кнопки запали. Все дело в том, что, возможно при сборке, когда-то вы достаточно сильно и резко надавили на ручку, из-за чего произошла деформация одной из "ножек" кнопки, что одновременно не давало кнопке отщелкнуться и дать большой белой шестеренке-сердцевине, отталкиваемой от другой стенки ручки, стать на свое место, не давая ручке заблокировать свое положение.
Таким образом, разобрав ручку - уберите пластиковые кнопки.
суббота, 23 апреля 2011 г.
[Быт] Поломалась ручка в коляске Chicco Tech 6 wd. Как починить
Автор:
Stedy
на
16:25
Столкнулись с такой проблемой, как поломка ручки в коляске Chicco Tech 6 wd - перестала держаться, болтается сверху вниз, кнопки запали и не отжимаются. Разобрать не представлялось возможным, инструкций, руководств или хотя бы подсказок в интернете тоже не нашлось. Вчера наконец разобрались как быть. В нашем случае, пришлось просверлить пластиковую кнопку по центру (можно сделать шилом). Прямо по центру находится шуруп, открутив который ручка быстро разбирается. Далее уже на что фантазии хватит
[Qt] Сборка vlc-qt. Пошагово. Часть 1
Автор:
Stedy
на
16:17
Сегодня я хотел бы рассказать о том, как можно собрать и использовать в своем проекте замечательную библиотеку 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. Получаем ошибку. Не расстраиваемся и делаем все в соответствии с изображением из следующего пункта
Смысл в том, чтобы для поля 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
Обсуждение на Russian Qt forum
Постоянный партнер блога:
Профессиональные услуги адвоката в Минске. Абрамович В.А. Корректировка таможенной стоимости. Защита интересов в хозяйственных судах. Признание и приведение в исполнение судебных постановлений иностранных судов на территории Республики Беларусь. - Abramovich.by
Syntax Code Highlighter
Автор:
Stedy
на
11:18
Долгие попытки найти достойный онлайн-сервис для подсветки кода, наконец-то, увенчались успехом - pastebin.com удовлетворяет всем потребностям.
[Qt] Рисуем сетку в *view при помощи QStyledItemDelegate
Автор:
Stedy
на
11:00
Как нарисовать сетку в QTreeView, -Widget и так далее? Достаточно просто и есть даже несколько примеров из состава Qt на основе QItemDelegate. Однако минусом такой реализации будет являться то, что при использовании вышеназванного делегата становится невозможным использование Qt StyleSheet (qss) вкупе с View. Для использования со стандартным стилем самими разработчиками рекомендуется использование QStyledItemDelegate.
Таким образом, нарисуем сетку:
gridlinedelegate.cpp
gridlinedelegate.h
Таким образом, нарисуем сетку:
gridlinedelegate.cpp
gridlinedelegate.h
четверг, 21 апреля 2011 г.
[Qt] очистка QHeaderView
Автор:
Stedy
на
12:45
Возникла ситуация, когда один и тот же QTreeWidget необходимо использовать для отображения различных данных с разным количеством столбцов в зависимости от ситуации. Как таковой функции clear() у QHeaderView нет, а использование reset() к желаемому результату не приводит, и столбцы не очищаются.
Решением в данной ситуации является использование treeWidget->setColumnCount(0) перед отображением новых данных.
Решением в данной ситуации является использование treeWidget->setColumnCount(0) перед отображением новых данных.
понедельник, 18 апреля 2011 г.
[Qt] запрет выделения текста в QWebView
Автор:
Stedy
на
20:27
Хотел бы продолжить серию заметок по Qt, пока переписываю информационный киоск. Как я уже раньше говорил, для отображения текста использую QWebView, в котором полностью скрыл скроллбары (полосы прокрутки) и выделение текста:
frame->evaluateJavaScript("document.onselectstart=function() {return false}");
frame->evaluateJavaScript("document.onselectstart=function() {return false}");
пятница, 15 апреля 2011 г.
[Qt] скрытие полос прокрутки в QWebView
Автор:
Stedy
на
18:22
Сейчас активно переписываю свой информационный киоск для хозяйственного суда с Delphi на Qt. Одним из элементов отображения текстовой информации я выбрал QWebView (webkit).
Важным условием просмотра информации являлся программный скролл и отсутствие видимых полос прокрутки - второе достигается достаточно просто:
QWebFrame* frame = browser->page()->mainFrame();
Важным условием просмотра информации являлся программный скролл и отсутствие видимых полос прокрутки - второе достигается достаточно просто:
QWebFrame* frame = browser->page()->mainFrame();
frame->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
аrame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
пятница, 8 апреля 2011 г.
[Qt] Программный скролл в QTreeWidget
Автор:
Stedy
на
19:42
Программный скроллинг QTreeWidget я реализовал вот так:
ну и так делее :)
ну и так делее :)
суббота, 2 апреля 2011 г.
[Qt] Тень используя QGraphicsDropShadowEffect
Автор:
Stedy
на
10:01
Если Вас интересует как в Qt можно добавить тень к любому виджету, то вот, например, так:
QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(this);
shadowEffect->setBlurRadius(6);
shadowEffect->setOffset(3);
ui->topNameLabel->setGraphicsEffect(shadowEffect);
Согласитесь, проще некуда! :)
QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(this);
shadowEffect->setBlurRadius(6);
shadowEffect->setOffset(3);
ui->topNameLabel->setGraphicsEffect(shadowEffect);
Согласитесь, проще некуда! :)
пятница, 1 апреля 2011 г.
[Qt] Создание красивого всплывающего окошка OSD
Автор:
Stedy
на
14:58
Для своей программки LinForismatic, отображающей цитаты на рабочем столе, понадобилось выводить красивые всплывающие окошки содержащие произвольный текст и, по мере необходимости, небольшое изображение-иконку.
Под линуксом с этим проблем нет - libnotify поможет всем. Однако хотелось кросс-платформенного решения, под определение которого подпадал widget для вывода OSD из состава музыкального проигрывателя Clementine.
Немного порывшись в исходном коде проигрывателя нужные классы были найдены. Единственное чего не хватало в реализации, так это установление произвольного шрифта - что я и добавил, собственно в этот widget.
В итоге получаем:
Под линуксом с этим проблем нет - 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();
четверг, 31 марта 2011 г.
[Разное] о размере заметок
Автор:
Stedy
на
00:05
Почему заметки такие короткие?
Потому что времени на написание развернутых тем нет абсолютно из-за работы, подработки, семьи и еще тысячи и одной причины... :)
Цель каждой заметки - быть полезной и ненавязчивой.
Потому что времени на написание развернутых тем нет абсолютно из-за работы, подработки, семьи и еще тысячи и одной причины... :)
Цель каждой заметки - быть полезной и ненавязчивой.
среда, 30 марта 2011 г.
[Qt] Поиск и замена текста в Microsoft Word посредством ActiveQt
Автор:
Stedy
на
21:16
Обратил внимание на то, что в интернете на форумах достаточно сложно найти информацию о том, как производить поиск и замену текста в Microsoft Word посредством ActiveQt. Для собственного проекта написал следующую процедуру:
void MsWordDocument::replaceString(const QString& oldString, const QString& newString)
Более подробную информацию о передаваемых параметрах можно прочитать на MSDN
void MsWordDocument::replaceString(const QString& oldString, const QString& newString)
{
QAxObject* WordSelection = WordApplication->querySubObject("Selection");
QAxObject* Find = WordSelection->querySubObject("Find");
if (!Find) return;
Find->dynamicCall("ClearFormatting()");
QList<QVariant> params;
params.operator << (QVariant(oldString));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant(true));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant(newString));
params.operator << (QVariant("2"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
params.operator << (QVariant("0"));
Find->dynamicCall("Execute(const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,"
"const QVariant&,const QVariant&,const QVariant&)",
params);
}
воскресенье, 27 марта 2011 г.
[Qt] Изменение шрифта во всем документе Microsoft Word посредством ActiveQt
Автор:
Stedy
на
22:06
Сегодня хотел бы написать небольшую заметку о том, как изменить шрифт во всем документе, созданном в Microsoft Word. Не буду многословен, а просто доработаю предыдущий пример:
- QAxObject* WordApplication = new QAxObject("Word.Application");
- if (!WordApplication) return;
- WordApplication->dynamicCall("SetVisible(bool)", false);
- WordApplication->querySubObject("Documents")->querySubObject("Open(QVariant)", _filename);
- QAxObject* active_doc = WordApplication->querySubObject("ActiveDocument");
- QAxObject* WordSelection = WordApplication->querySubObject("Selection");
- WordSelection->dynamicCall("WholeStory()");
- QAxObject *Font = WordSelection->querySubObject("Font");
- Font->setProperty("Size", 22);
- QVariant newF(_outputDir + newFilename);
- QVariant fileFormat(6); //Saving as filtered rtf
- active_doc->querySubObject("SaveAs(const QVariant&, const QVariant&)", newF, fileFormat);
- WordApplication->querySubObject("ActiveDocument")->dynamicCall("Close()");
- WordApplication->dynamicCall("Quit()");
* This source code was highlighted with Source Code Highlighter.
четверг, 24 марта 2011 г.
[Qt] Вывод текстовых сообщений посредством libnotify OSD в ubuntu
Автор:
Stedy
на
01:12
При написании своей небольшой программки LinForismatic, которая отображает произвольные цитаты через заданные промежутки времени, захотелось отображать текст посредством стандартного OSD вывода под Linux, конкретно в ubuntu.
Проблема решилась достаточно просто:
1. устанавливаем libnotify-bin
2. используем notify-send для вывода сообщения
Имейте ввиду, что по некоторым причинам параметр командной строки для notify-send "--expire-time=" не работает.
Проблема решилась достаточно просто:
1. устанавливаем libnotify-bin
2. используем notify-send для вывода сообщения
QString program = "notify-send"; QStringList arguments; arguments << name << text; QProcess* myProcess = new QProcess(this); myProcess->start(program, arguments);
Имейте ввиду, что по некоторым причинам параметр командной строки для notify-send "--expire-time=" не работает.
среда, 23 марта 2011 г.
[Ubuntu] Запуск проигрывателя VLC в упрощенном режиме
Автор:
Stedy
на
11:50
Для того чтобы открыть мультимедиа файл в проигрывателе VLC c упрощенным режимом интерфейса, запустим vlc со следующими параметрами командной строки:
vlc --qt-minimal-view
Для удобства рекомендую в настройках включить опцию "Поверх всех окон"
vlc --qt-minimal-view
Для удобства рекомендую в настройках включить опцию "Поверх всех окон"
вторник, 22 марта 2011 г.
[Qt] плавное появление и "затухание" элементов. Анимация
Автор:
Stedy
на
22:20
Есть в Qt замечательный класс QPropertyAnimation, с помощью которого можно анимировать элементы интерфейса по их значениям. Например, прозрачность:
// "затухание" QPropertyAnimation* animation = new QPropertyAnimation(this, "windowOpacity"); animation->setDuration(2000); animation->setStartValue(1); animation->setEndValue(0); animation->start(); connect(animation, SIGNAL(finished()), this, SLOT(hide())); // "появление" setWindowOpacity(0); show(); QPropertyAnimation* animation = new QPropertyAnimation(this, "windowOpacity"); animation->setDuration(2000); animation->setStartValue(0); animation->setEndValue(1); animation->start();
[Qt] конвертация файлов из Microsoft Word (doc) в RTF
Автор:
Stedy
на
21:12
Сказано - сделано:
Открываем doc файл, сохраняем его в rtf. При этом окно Ms Word скрываем
QAxObject* WordApplication = new QAxObject("Word.Application"); WordApplication->dynamicCall("SetVisible(bool)", false); WordApplication->querySubObject("Documents")->querySubObject("Open(QVariant)", _filename); QString newFilename = ...new...name... QAxObject* active_doc = WordApplication->querySubObject("ActiveDocument"); QVariant newF(_outputDir + newFilename); QVariant fileFormat(6); //Сохраняем в rtf. 2 - txt active_doc->querySubObject("SaveAs(const QVariant&, const QVariant&)", newF, fileFormat); // Закрываем WordApplication->querySubObject("ActiveDocument")->dynamicCall("Close()"); WordApplication->dynamicCall("Quit()");
Открываем doc файл, сохраняем его в rtf. При этом окно Ms Word скрываем
[Qt] использование кавычек в имени файла
Автор:
Stedy
на
21:01
Возникла необходимость в программе для windows в имени сохраняемого файла использовать кавычки. Придумал следующее решение:
Под linux лишних телодвижений не нужно, естественно...
понедельник, 24 января 2011 г.
Насущное. Подведены итоги
Автор:
Stedy
на
21:14
Вот и закончился отчетный год, проведено итоговое совещание, подведены итоги... Выступил с докладом об информационных технологиях, который был посвящен, в основном, программному обеспечению разработанному мною для нашего суда - системе информационных табло и инфо-киоску.
потихонечку буду писать сюда о новом.
потихонечку буду писать сюда о новом.
Подписаться на:
Сообщения (Atom)