crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 16:12