Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SystemTrayIcon координаты.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
ernie
Доброго времени суток господа.
Встал такой вопрос,как определить местоположение системной панели(или трея),т.е. справа,слева,вверху или внизу экрана она находится?а так же отрисовывать свой виджет рядом с ней.Заранее спасибо.
Алексей1153
Цитата
QRect QSystemTrayIcon::geometry () const
Returns the geometry of the system tray icon in screen coordinates.

This function was introduced in Qt 4.3.

See also visible.
ernie
Алексей1153, я видел этот метод,но он почему-то всегда нули мне возвращает,вне зависимости от нахождения панели
Алексей1153
у меня нормально возвращает. Но только это прямоугольник иконка, а не лотка. Может, ты иконку не отобразил ?

А как прямоугольник самого лотка достать, только для винды знаю -
Раскрывающийся текст
HWND hShell_TrayWnd=::FindWindow("Shell_TrayWnd",0);//таскбар
if(hShell_TrayWnd && hShell_TrayWnd!=(HWND)-1)
{
    HWND hTrayNotifyWnd=::FindWindowEx(hShell_TrayWnd,0,"TrayNotifyWnd",0);//лоток с часами и иконками вместе
    if(hTrayNotifyWnd && hTrayNotifyWnd!=(HWND)-1)
    {
        HWND hSysPager=::FindWindowEx(hTrayNotifyWnd,0,"SysPager",0);//родитель части лотка с иконками
        if(hSysPager && hSysPager!=(HWND)-1)
        {
            HWND hToolBarWindow32=::FindWindowEx(hSysPager,0,"ToolBarWindow32",0);//сам лоток с иконками

            if(hToolBarWindow32 && hToolBarWindow32!=(HWND)-1)
            {
                RECT r;
                GetWindowRect(hToolBarWindow32,&r);
            }
        }
    }
}


я сейчас попытался как-то так сделать
    QRect rIcon=m_TrayIcon->geometry();
    
    QWidget* syspager=QDesktopWidget().childAt(rIcon.center());
    
    QRect rSyspager=syspager->geometry();


но syspager==0 ...
Возможно, в этом направлении покопать стоит
ernie
Алексей1153,спасибо за советы,разобрался,не в том месте просто вызывал geometry :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.