crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Сегфолт при смене центрального виджета QMainWindow
Andrewshkovskii
  опции профиля:
сообщение 16.2.2009, 18:08
Сообщение #11


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Щас попробую:)Спасибо.а вот то что виджеты уничтожаются..есть такое :
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    testmain w;
    QWidget W1,W2;
    QPushButton B1,B2;
    B1.setText("1");
    B2.setText("2");
    QHBoxLayout Lay1,Lay2;
    Lay1.addWidget(&B1);
    Lay2.addWidget(&B2);
    W1.setLayout(&Lay1);
    W2.setLayout(&Lay2);
    w.setCentralWidget(&W1);
    w.setCentralWidget(&W2);
    w.setCentralWidget(&W1);
    w.show();
    return a.exec();
}

Сразу сегфол.Понятно что сделано это, видимо, для экономии памяти(удаление виджета, кот. был центральным, после его смены)..

Сообщение отредактировал Andrewshkovskii - 16.2.2009, 18:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.2.2009, 18:32
Сообщение #12


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andrewshkovskii @ 16.2.2009, 21:08) *
w.setCentralWidget(&W1);
w.setCentralWidget(&W2);
w.setCentralWidget(&W1);
в этом коде центральным виджетом будет последний, соответственно две предыдущие строки не нужны.

вообще установка разных параметров должна проводится в классе testmain, а уж центрального виджета и подавно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 16.2.2009, 18:48
Сообщение #13


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Ну я пробовал запустить - будет ошибка приложения, если поставить последним центральным W1,если нет - все ОК . Про установки это понятно, это я просто для теста написал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andrewshkovskii
  опции профиля:
сообщение 7.3.2009, 18:46
Сообщение #14


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Немного подыму старую тему. Скажу честна - сел разбирать стэковую компоновку только сейчас, не было времени заняться...Пример, который привели Вы, Юрий, не работает, все время висит 2ой виджет и не переключается..так же надо исправить
stackedWidget->addWidget(page2);
stackedWidget->addWidget(page1);

на
mainWgt->addWidget(page2);
mainWgt->addWidget(page1);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.2.2025, 5:58