Показать QWidget с QSlider поверх иконки в трее
Я пытаюсь реализовать какой-то слайдер громкости в Qt. Я добавил QWidget
с QSlider
в теме. Это прекрасно работает для меня... Но! QWidget
показывает в центре экрана. Но мне нужно это в верхней части иконки в трее.
Кто-нибудь знает, как это сделать?
Код:
VolumeSlider::VolumSlider(QWidget *parent) : QWidget(parent)
{
setWindowFlags(Qt::Popup);
resize(20, 150);
slider = new QSlider(Qt::Vertical, this);
slider->setRange(0, 100);
slider->setSingleStep(5);
slider->setPageStep(10);
slider->setValue(currentVolume);
slider->resize(20, 150);
}
Я показываю QWidget
двухкомпонентной QSlider
по среднему клику:
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this, SLOT(trayIconClicked(QSystemTrayIcon::ActivationReason)));
И реализация слота:
void VolumeSlider::trayIconClicked(QSystemTrayIcon::ActivationReason reason)
{
if (reason == QSystemTrayIcon::MiddleClick) {
show();
}
}
Спасибо за внимание!
С наилучшими пожеланиями!
1 ответ
Вы можете рассмотреть QSystemTrayIcon
Учебный класс:
http://doc.qt.io/qt-5/qsystemtrayicon.html
И этот пример: