RestoreGeometry()具有多监视器配置

时间:2015-05-21 15:17:50

标签: c++ qt position window location

我有一个QMainWindow并希望记住它在屏幕上的大小和位置。

我可以使用saveGeometry()将设置保存到.ini文件和restoreGeometry() - 以恢复窗口。

然而,behaviour设置窗口的multiscreen是什么?

是否可以在正确的调用窗口上启动Window,并记住该窗口上的大小和位置?

在我当前的实现中,我已经处理了鼠标指针当前所在的应用程序的启动,但窗口始终是全屏的,除非有人在ini文件中手动设置位置。

int posX = cSfcConfig::getProperties(MAIN_WINDOW, POS_X).toInt();
int posY = cSfcConfig::getProperties(MAIN_WINDOW, POS_Y).toInt();
QByteArray locationArray = cSfcConfig::getLocationSetting();
if ( posX > 0 || posY > 0)
{
    QRect rect = QDesktopWidget().availableGeometry();  
        QDesktopWidget *m=new QDesktopWidget();
        QPoint p= QCursor::pos();
        int r= m->screenNumber(p);
        QRect d=m->screenGeometry(r);
        //QPoint l = d.();
        int width = rect.width() - (posX * 2);
        int height = rect.height() - posY;
        //mainWindow.restoreGeometry(locationArray);
        //mainWindow.restoreState(cSfcConfig::GetStateSetting());
        mainWindow.setGeometry(posX, posY, width, height);
        mainWindow.show();
        mainWindow.move(l);
}
else
{
    mainWindow.showMaximized();
}

0 个答案:

没有答案
相关问题