вторник, 2 июля 2013 г.

Компонент "Панель задач"

Наткнулся на qt-apps.org на компонент для Qt "Панель задач" (Task Panel). Подобные панели используются в проводнике Windows. По крайней мере использовались в XP, в семерке такой панели уже существенно меньше. Но тем не менее, может пригодиться.

Лицензия LGPL, то есть, можно использовать в коммерческих приложениях.
Проблем с использованием не обнаружил, единственно, что не понравилось - закругления уголков, немного подрихтовал напильником, чтобы было без сглаживания уголков.
Возможности компонента:
  • Группировка задач по блокам.
  • Возможность добавить свой виджет в блок. Стандартное решение - это размещение ссылок в блоках.
  •  Эффекты анимации при сворачивании/разворачивании блоков.
  • Возможность задать свою цветовую схему. По умолчанию предлагаются две стандартные схемы в стиле Windows XP.

Простой пример использования.

  // Создание панели задач  
  iisTaskPanel * panel = new iisTaskPanel(this);
  // Установка схемы по умолчанию, обычно это голубенькая схема
  panel->setScheme(iisWinXPTaskPanelScheme::defaultScheme());
  // Создание блока на панели
  iisTaskBox  * tbProgram = new iisTaskBox(QPixmap(), tr("Program"), truethis);
  // Создание ссылки в блоке
  iisIconLabel * lblHelp = new iisIconLabel(QPixmap(), tr("Help"), tbProgram);
  // Связывание со слотом
  connect(lblHelp, SIGNAL(activated()), this, SLOT(help()));
  // Добавление в блок
  tbProgram->addIconLabel(lblHelp);
  
  // Еще одна ссылка
  iisIconLabel * lblLogout = new iisIconLabel(QPixmap(), tr("Logout"), tbProgram);
  connect(lblLogout, SIGNAL(activated()), this, SLOT(unlogin()));
  tbProgram->addIconLabel(lblLogout);
  
  // Установка схемы для блока
  tbProgram->setScheme(iisWinXPTaskPanelScheme2::defaultScheme());

  // Еще один блок
  iisTaskBox * tbBlock = new iisTaskBox(QPixmap(), tr("Block 2"), truethis);

  // Добавляем блоки на панель
  panel->addWidget(tbProgram);
  panel->addWidget(tbBlock);

К слову сказать, этот компонент - часть коллекции виджетов QSint от http://sintegrial.com.
Сама коллекция доступна по адресу http://sintegrial.com/qsint

1 комментарий:

  1. Looks very impressive :) It was always unclear for me why something like this does not exist within native Qt...

    ОтветитьУдалить