Russian Qt Forum

Qt => Общие вопросы => Тема начата: BuRn от Сентябрь 23, 2015, 17:55



Название: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 23, 2015, 17:55
Добрый день. Есть Window, я ему делаю minimized, окно сворачивается, дальше хочу при некоторых событиях развернуть его, и вызываю функцию:
Код:
void Application::setOnTop()
{
    if(!_viewer->isActive())
    {
        if(_viewer->visibility()==QWindow::Minimized)
        {
            _viewer->setVisibility(QWindow::Windowed);
        }

        if(!_viewer->isTopLevel())
            _viewer->raise();
    }
}
Но вот почему-то окно не получается развернуть, пытался поиграться с флагами, ситуация аналогичная, окно на прочь не хочет разворачиваться, хотя код под условием точно отрабатывает. ОС Linux, на виндовс не проверял


Название: Re: Разворачивание окна после Minimized
Отправлено: Alex Custov от Сентябрь 23, 2015, 17:58
visibility это совсем о другом. Попробуй

Код
C++ (Qt)
setWindowState(windowState() & ~Qt::WindowMinimized);
raise();
 


Название: Re: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 23, 2015, 18:07
visibility это совсем о другом. Попробуй

Код
C++ (Qt)
setWindowState(windowState() & ~Qt::WindowMinimized);
raise();
 
Не работает:
Код:
 _viewer->setWindowState((Qt::WindowState)(_viewer->windowState() & ~Qt::WindowMinimized));


Название: Re: Разворачивание окна после Minimized
Отправлено: Alex Custov от Сентябрь 23, 2015, 18:15
Не работает:

Вспомнил что ещё нужно окно активировать

Код
C++ (Qt)
       setWindowState(windowState() & ~Qt::WindowMinimized);
       raise();
       activateWindow();
 


Название: Re: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 23, 2015, 18:37
Не работает:

Вспомнил что ещё нужно окно активировать

Код
C++ (Qt)
       setWindowState(windowState() & ~Qt::WindowMinimized);
       raise();
       activateWindow();
 
У QWindow нет такого метода, activateWindow()


Название: Re: Разворачивание окна после Minimized
Отправлено: GreatSnake от Сентябрь 23, 2015, 18:46
QWindow::show()
или
QWindow::showMaximized()


Название: Re: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 23, 2015, 18:49
QWindow::show()
или
QWindow::showMaximized()
Не работает ни то ни то, что интересно, максимайзед работает, т.е. если вызвать showMaximized , то оно будет развернуто до максимального размера, но по прежнему будет в свернутом состоянии, а вот если его вывести из свернутого состояния, то действительно оно Maximized.
Мб в этом дело ?
viewer.setFlags(viewer.flags() | Qt::FramelessWindowHint);


Название: Re: Разворачивание окна после Minimized
Отправлено: Vergil Alighieri от Сентябрь 24, 2015, 09:01
Попробуй
Код:
   
 MainWindow::showNormal();
 MainWindow::activateWindow();

Сам так разворачиваю окно неактивное в своём проекте.
С помощью первого оно у меня разворачивается, а вторым выходит на передний план.

P.S. Посмотрел.. У QWindow действительно нет activateWindow(), но showNormal() отрабатывает.


Название: Re: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 24, 2015, 10:27
Попробуй
Код:
   
 MainWindow::showNormal();
 MainWindow::activateWindow();

Сам так разворачиваю окно неактивное в своём проекте.
С помощью первого оно у меня разворачивается, а вторым выходит на передний план.

P.S. Посмотрел.. У QWindow действительно нет activateWindow(), но showNormal() отрабатывает.
Какая ос ?
Ос Ubuntu, не разворачивает showNormal()


Название: Re: Разворачивание окна после Minimized
Отправлено: BuRn от Сентябрь 24, 2015, 10:42
http://файлообменник.рф/b50rzl6vc3gv.html
 (http://файлообменник.рф/b50rzl6vc3gv.html)Вот пример, который у меня не работает. Нажимаем на кнопку, окно сворачивается и через 5 секунд не разворачивается, хотя слот отработал и showNormal() тоже