Восстановить развернутое / нормальное окно после запуска свернутого приложения в QT

У меня проблема с моим приложением Qt. Я могу сохранить и восстановить qeometry моего приложения без каких-либо проблем. Проблема заключается в том, что я пытаюсь сохранить геометрию развернутого приложения в закрытом событии, и после этого я пытаюсь запустить какое-то приложение в свернутом виде (что-то вроде «Запустить развертывание при запуске»). Когда я делаю это и нажимаю значок на панели задач, окно открывается как обычное окно (не развернуто).

Я могу изобразить (и написать) какой-то обходной путь, но со всей логикой графического интерфейса легко сделать некоторую ошибку, которую я предпочитаю каким-то родным способом. Я ищу что-то вроде параметра, когда я мог бы установить это окно после того, как минимизация должна быть максимальной или нормальной.

У меня нет этой проблемы, когда я запускаю приложение развернуто, затем я сверну окно и снова разверну. В этом случае все в порядке. Проблема только при запуске.

Это похоже на мелкие детали, но это большая мысль, если мы думаем о приложении, которое люди используют каждый день, и у них не может быть каждодневного окна.

РЕДАКТИРОВАТЬ:

Через несколько часов я сдаюсь.
Вот мой обходной путь. Пока не проверено глубоко, но, возможно, кому-то это понадобится в будущем.
Я отредактирую его, если найду ошибку или лучшее решение.

#include "mainwindow.h"#include <QSettings>
#include <QCloseEvent>

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), settings("MyCompany",     "MyApp") {
settingsReaded = false;
startMinimized = true;

if(startMinimized) showMinimized();
else show();
}

void MainWindow::closeEvent(QCloseEvent *event) {
settings.setValue("geometry", saveGeometry());
showMinimized();
event->ignore();
}

void MainWindow::readSettings() {
restoreGeometry(settings.value("geometry").toByteArray());
settingsReaded = true;
}

void MainWindow::changeEvent(QEvent * event) {
bool isActive = (event->type() == QEvent::ActivationChange && isActiveWindow());

//load settings on first window activation (click on icon of minimized window or
//open window if we have startMinimized = false
//settingsReaded - determine that the settings was loaded only once.
if(isActive && !settingsReaded) {
readSettings();
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]