crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Вызов окна от QMainWindow
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
KLIF Дата 26.10.2010, 22:31
 
Цитата(KLIF @ 24.10.2010, 12:39) *
У меня проект от QMainWindow в нем вызываю еще одно окно если оно наследуется от QDialog я делаю так :
void DemAstPro::on_action_10_stvor_faile_triggered()
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
        Create_f_DemAsT w;
        w.setParent(this,Qt::Dialog);
        w.setWindowModality(Qt::ApplicationModal);
        w.show();
        w.exec();
        return;
}

и в этом случае все ок и все вполне реагирует нормально...
Мне нужно наследовать его от QMainWindow то так у меня не получается.....
И я не знаю как мое окно вызвать....



надо было сделать примерно так :
void DemAstPro::on_action_10_stvor_faile_triggered()
{

    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
    Create_f_demast w;

    QDialog *ter = new QDialog (this);

    QGridLayout *nb = new QGridLayout (ter);
    nb->addWidget(&w);
    ter->show();
    ter->showMaximized();
    ter->exec();
    return;


}
Litkevich Yuriy Дата 24.10.2010, 17:52
 
Цитата(KLIF @ 24.10.2010, 20:39) *
вернее появляется на пол секунды и закрывается... я не успеваю даже увидеть что оно отображает...
Цитата(Litkevich Yuriy @ 24.10.2010, 16:15) *
QMainWindow не наследник QDialog и у него нет метода exec()
соответственно и нет собственного цикла обработки событий.
Твой код:
void DemAstPro::on_action_10_stvor_faile_triggered()
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
        Create_f_DemAsT w;
        w.setParent(this,Qt::Dialog);
        w.setWindowModality(Qt::ApplicationModal);
        w.show();
        // w.exec(); - такого метода нет
        return;
}
Объект w, был создан, что-то ещё, затем вызван метод show(), этот метод отработал. Дальше написано return т.е. функция завершается. А раз функция завершается, то объект, созданный на стеке, тут же удаляется.

П.С.
Класс QMainWindow придуман для вполне очевидной цели, зачем пытаться сделать из него диалоговое окно?
KLIF Дата 24.10.2010, 17:39
 
Цитата(Алексей1153 @ 24.10.2010, 15:23) *
KLIF, произвести класс от него :)

так и делаю, но оно его не показывает..... вернее появляется на пол секунды и закрывается... я не успеваю даже увидеть что оно отображает....
Алексей1153 Дата 24.10.2010, 15:23
  KLIF, произвести класс от него :)
KLIF Дата 24.10.2010, 14:04
 
Цитата(Litkevich Yuriy @ 24.10.2010, 13:15) *
Цитата(KLIF @ 24.10.2010, 15:39) *
w.show();
w.exec();
за чем два метода вызываешь? метод exec() и так показывает диалог.

Цитата(KLIF @ 24.10.2010, 15:39) *
Мне нужно наследовать его от QMainWindow то так у меня не получается.....
QMainWindow не наследник QDialog и у него нет метода exec()


КАК сделать чтобы мое окно которое мне нужно вызвать наследовалось от QMainWindow ????
Litkevich Yuriy Дата 24.10.2010, 13:15
 
Цитата(KLIF @ 24.10.2010, 15:39) *
w.show();
w.exec();
за чем два метода вызываешь? метод exec() и так показывает диалог.

Цитата(KLIF @ 24.10.2010, 15:39) *
Мне нужно наследовать его от QMainWindow то так у меня не получается.....
QMainWindow не наследник QDialog и у него нет метода exec()
KLIF Дата 24.10.2010, 12:39
  У меня проект от QMainWindow в нем вызываю еще одно окно если оно наследуется от QDialog я делаю так :
void DemAstPro::on_action_10_stvor_faile_triggered()
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
        Create_f_DemAsT w;
        w.setParent(this,Qt::Dialog);
        w.setWindowModality(Qt::ApplicationModal);
        w.show();
        w.exec();
        return;
}

и в этом случае все ок и все вполне реагирует нормально...
Мне нужно наследовать его от QMainWindow то так у меня не получается.....
И я не знаю как мое окно вызвать....
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 18.4.2024, 7:06