Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QWidget показ окна

Автор: Vova 16.12.2011, 17:16

Всегда вызывал окна .exec(), но в новой версии qt похоже вообще нет exec(). Ни в QWidget, ни в QMainWindow, ни в QDialog. А если вызывать через show() - окно показывается, но сразу закрывается. Вопрос: Какого $$$ они убрали exec???? Как показать окно с помощью show()????

    
    if (check_void(ui->user->text(),ui->pass->text()))
    {
          MW w;
          w.show();
    }
    else{}

Автор: BRE 16.12.2011, 18:23

Это ты диалоги так всегда вызывал, в QDialog этот метод остался.
А окно у тебя сразу закрывается потому, что ты его создаешь на стеке, а как известно все автоматические переменные разрушаются при выходе из их зоны видимости. Нужно просто создавать этот объект в куче (через new) и все будет показываться.
Никто убрать exec сейчас не может, до Qt5 по крайней мере. :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)