Russian Qt Forum
Ноябрь 02, 2024, 02:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Приложение в одном окне  (Прочитано 2017 раз)
mishutka999
Гость
« : Декабрь 13, 2010, 05:30 »

Доброго времени суток. Я в QT новичек. У меня есть вопрос, с которым я мучаюсь уже не один час.
Мне нужно написать приложение, которое будет работать в одном окне, тоесть в окне сначала одна информация повляется (QLabel и QSpinBox), потом нажимаешь кнопочку "ок"/"далее" (эти кнопки я тоже создал) в то же окне  и появляется другая информация такого же типа. Пробовал создавая QWidget для "каждого окна". Но столкнулся с проблемой - у меня заполнение каждого окна идет в отдельных функциях,
Код:
class A : public QObject
{
Q_OBJECT
private:
 QWidget wgt1;
 QWidget wgt2;
public:
 void func1 ()
 {QHBoxLayout* lay = new  QHBoxLayout;
  ...
  wgt1.setLayout(lay);
  wgt1.show();}

void func2 ()
 {QHBoxLayout* lay2 = new  QHBoxLayout;
  ...
 wgt2.setLayout(lay2);
  wgt1.hide();
  wgt2.show();}

};
и когда я вызываю любую из этих функций второй раз, пишет
Код:
QWidget::setLayout: Attempting to set QLayout "" on QWidget "", which already has a layout

я понимаю, что это значит, но не понимаю как это обойти. Подскажите пожалуйста

+ как мне сделать чтобы у меня все виджеты распологались как бы в одном окне (а то когда происходит
Код:
wgt1.hide();
  wgt2.show();
окна скачут).

И можно ли удалить с QWidget все что я туда засунул (QHBoxLayout , QLabel и тд.)?
Записан
Fat-Zer
Гость
« Ответ #1 : Декабрь 13, 2010, 05:54 »

почитайте про QStackedLayout именно он вам и нужен.

Да ещё, если делаете мастер, то почитайте про QWizard
« Последнее редактирование: Декабрь 13, 2010, 06:13 от Fat-Zer » Записан
deM1d
Гость
« Ответ #2 : Декабрь 13, 2010, 18:47 »

Цитировать
И можно ли удалить с QWidget все что я туда засунул (QHBoxLayout , QLabel и тд.)?
все твои виджеты дочерние к layOut'у, ну в начале ты выделяешь память под layout, когда нужно удаляешь... все виджеты автоматически так-же выгрузяться... разве нет?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.088 секунд. Запросов: 21.