crossplatform.ru

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

Andrewshkovskii
  опции профиля:
сообщение 16.2.2009, 13:17
Сообщение #1


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

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

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




Репутация:   1  


Есть у меня QMainWindow. в нем отображается QWidget(MainWidget), c 3мя кнопочками. 1-ая кнопочка - Делает центральным (setCentraWidget) ещё один QWindget(Test1Widget). в этом виджите 2 кнопочки, одна не активна пока-что, другая должна возвращать фокус на MainWidget. делаю я это так :
описываю слот :
void ColorTest::BackToMainWindow()
{
    this->setCentralWidget(MainWidget);// this - указатель на мой QMainWindow
}


и соединяю с сигналом :

void ColorTest::SetConnectionsForTest1()
{
    //connect(SubmitAnswerTest,SIGNAL(clicked()),)
    connect(AbortTest1Button,SIGNAL(clicked()),this,SLOT(BackToMainWindow()));
}


Но при нажатии кнопочки AbotTest1Button - приложение завершается с ошибкой. В чем проблема?Ведь я менял центральный на test1Widget без проблем, а обратно - фиг. Может надо закрывать не "централизованные" виджеты?Пробывал - тоже самое.. в чем может быть проблема?

Сообщение отредактировал Litkevich Yuriy - 16.2.2009, 13:29
Причина редактирования: вместо параметра C++ используй cpp (англ.)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
2 страниц V  < 1 2  
Начать новую тему
Ответов (10 - 13)
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 Рейтинг@Mail.ru Текстовая версия Сейчас: 21.6.2025, 10:57