Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: aviabunin от Октябрь 23, 2011, 09:20



Название: Не центрируется окно приложения в эмуляторе
Отправлено: aviabunin от Октябрь 23, 2011, 09:20
Попробовал центрировать окно двумя способами

Код:
void iSticks::centerOnDesktop()
{
    quint16 screenWidth, width, screenHeight, height, x, y;
    QSize windowSize;

    screenWidth = QApplication::desktop()->width();
    screenHeight = QApplication::desktop()->height();
    windowSize = size();
    width = windowSize.width();
    height = windowSize.height();
    x = (screenWidth - width) / 2;
    y = (screenHeight - height) / 2;
    y -= 100;
    move(x, y);
}

void iSticks::moveToCenter()
{
    move(qApp->desktop()->availableGeometry(this).center()-rect().center());
}
На десктопе центрируется, в эмуляторе отображается в левом верхнем углу. В чем может быть дело?
Спасибо за любую ссылку или подсказку.


Название: Re: Не центрируется окно приложения в эмуляторе
Отправлено: Prm от Октябрь 24, 2011, 10:52
а если так:

Код:
     #include <QDesktopWidget>

     ...
     QRect dlg_geometry = geometry();
     dlg_geometry.moveCenter(QApplication::desktop()->screenGeometry().center());
     setGeometry(dlg_geometry);
     ...


Название: Re: Не центрируется окно приложения в эмуляторе
Отправлено: Странник от Октябрь 24, 2011, 15:52
а отладить самостоятельно не пробовали? может у вас после расчета x и y нулевые. или отрицательные. по крайней мере, с move() проблем замечено не было, а вот с геометрией десктопа - запросто.