Реклама

Использование кнопок WinThumbnailToolButton при работе с Qt на Windows

Qt, winextras, ThumbnailToolButton, WinThumbnailToolButton, QWinThumbnailToolButton

Кнопки класса QWinThumbnailToolButton – одна из возможностей, доступных только для ОС Windows (7 и старше). Такие кнопки вы могли видеть у программы Windows Media Player

Для использования таких кнопок необходимо

1. Подключить модуль winextras к проекту.

QT  += winextras

2. Создать панель класса QWinThumbnailToolBar и привязать её к окну,

thumbnailToolBar = new QWinThumbnailToolBar(this);
thumbnailToolBar->setWindow(windowHandle());

3. Добавляем в конструктор код:

if (QtWin::isCompositionEnabled())
    QtWin::extendFrameIntoClientArea(this, 0, 0, 0, 0);
else
    QtWin::resetExtendedFrame(this);

Теперь можно создать кнопку (кнопки) и привязать её (их) к панели

B1 = new QWinThumbnailToolButton(thumbnailToolBar);
thumbnailToolBar->addButton(B1);

Эти кнопки работают также как QPushButton. Например, можно установить для кнопки иконку с помощью метода setIcon(), связать сигнал её clicked() с любым слотом, и т.д. Уникальным свойством этого класса является логическая переменная dismissOnClick. Если её значение установить как true (setDismissOnClick(true)), то после нажатия на соответствующую кнопку панель будет мгновенно сварачиваться. В противном случае панель будет доступна пока пользователь не отведёт от неё курсор мыши. Максимальное число кнопок, которое можно добавить на панель QWinThumbnailToolBar - 7.

С помощью свойства flat (setFlat(true)) можно сделать кнопку невидимой и использовать её в качестве разделителя между группами кнопок, как на рисунке ниже.

Здесь можно скачать текст описанной программы

Реклама

Комментарии

Комментарии

Только авторизованные пользователи могут оставлять комментарии.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
  • JaJay
  • 17 декабря 2017 г. 5:16

C++ - Тест 002. Константы

  • Результат 58 баллов
  • Очки рейтинга -2
  • JaJay
  • 17 декабря 2017 г. 4:55

C++ - Тест 001. Первая программа и типы данных

  • Результат 93 баллов
  • Очки рейтинга 8
  • JaJay
  • 17 декабря 2017 г. 4:48

C++ - Тест 001. Первая программа и типы данных

  • Результат 66 баллов
  • Очки рейтинга -1
Последние комментарии
  • EVILEG
  • 7 декабря 2017 г. 9:47

Django - Урок 011. Добавление комментариев на сайт с Django

Визуальный пример чего? комментариев? При ответе на конкретный комментарий рядом с ником отвечающего будет стрелочка и указание ник другого пользователя. Который будет ссылкой на коммента...

  • Bernar
  • 7 декабря 2017 г. 9:24

Django - Урок 011. Добавление комментариев на сайт с Django

есть визуальный пример ?

  • EVILEG
  • 6 декабря 2017 г. 11:30

Django - Урок 011. Добавление комментариев на сайт с Django

Да, так будет даже лучше, я на сайте уже обновил до такого вида код Вот это уже не нужно if request.method == 'POST': Поскольку Вы и так используете метод post, то есть эта про...

  • Bernar
  • 6 декабря 2017 г. 11:19

Django - Урок 011. Добавление комментариев на сайт с Django

сделал немного по другому class EArticleView(View): template_name = 'knowledge/article.html' comment_form = CommentForm def get(self, request, *args, **kwargs): ...

Сейчас обсуждают на форуме
  • EVILEG
  • 16 декабря 2017 г. 17:23

Пауза в многопоточности

QFuture, который возвращается QtConcurrent::map имеет методы pause() и resume() и теоретически должен поддерживать этот функционал. Но для Qt...

  • Миша
  • 15 декабря 2017 г. 11:26

Как найти в QVector макс и мин

Спасибо

  • Galant
  • 14 декабря 2017 г. 19:58

LPT

Понял! Спасибо!

  • EVILEG
  • 14 декабря 2017 г. 13:38

QCustomPlot можно ли построить прерывистую линию на одном графике?

Во-первых: В pro файле проект по идее достаточно указать следующий define для включения возможности рендеринга через OpenGL DEFINES += QCUSTOMPLOT_USE_OPENGL И во вторых:...

  • EVILEG
  • 13 декабря 2017 г. 8:05

В многопоточности выполнять действие только в одном из потоков

Статическиe методs QThread::currentThread(); и QThread::currentThreadId() могут возвращать указатель на поток и его handle id соответственно. Можете попробовать через как...