我有一个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();
}