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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Крос расположение виджетов в лейауте  (Прочитано 4857 раз)
korel
Гость
« : Ноябрь 05, 2010, 14:51 »

Мне нужно, чтобы расположение виджетов было таким: .
Здесь виджеты расположены на форме без лейаута. Мне нужно чтобы они имели такое де расположение, только лежали на лейауте.
Может кто сталкивался с подобными задачами?
Записан
korel
Гость
« Ответ #1 : Ноябрь 05, 2010, 14:54 »

картинка здесь:
http://www.uploadhouse.com/viewfile.php?id=6879512&PHPSESSID=9a5c516a7df568ebe750c5a4b05d9f47
Записан
BlackTass
Гость
« Ответ #2 : Ноябрь 05, 2010, 14:59 »

Первое что приходит в голову это GraphicsView и AnchorLayout
Записан
Kolobok
Гость
« Ответ #3 : Ноябрь 05, 2010, 15:01 »

Красное и черное это тоже виджеты?
Записан
korel
Гость
« Ответ #4 : Ноябрь 05, 2010, 15:16 »

Красное и черное это тоже виджеты?

Да. Эти 4 контрола - это виджеты.
Записан
whirlwind
Гость
« Ответ #5 : Ноябрь 05, 2010, 15:51 »

я бы попробовал свой наследник QLayout написать. Оно вроде несложно, всего несколько методов переопределить

Стандартными средствами вряд ли получится
Записан
korel
Гость
« Ответ #6 : Ноябрь 05, 2010, 15:59 »

я бы попробовал свой наследник QLayout написать. Оно вроде несложно, всего несколько методов переопределить

мне нужно, чтобы весь кастомный интерфейс аппликухи создавался в дизайн-тайме. Не хотелось, просто еще, кастомный лейаут как плагин для дизайнера создавать...
Записан
Kolobok
Гость
« Ответ #7 : Ноябрь 05, 2010, 16:19 »

Посмотри QStackedLayout::StackAll
Записан
korel
Гость
« Ответ #8 : Ноябрь 05, 2010, 16:44 »

Посмотри QStackedLayout::StackAll

Если я правильно понял то QStackedLayout помещает в себе сет чаилд виджетов и дает возможность показывать только один виджет (скрывая все остальные от пользователя). Вы предлагаете просто задать геометрию, для каждого чаилда и исвользовать QStackedLayout::StackAll мод Непонимающий?
Записан
korel
Гость
« Ответ #9 : Ноябрь 05, 2010, 17:33 »

QStackedLayout работает так как он должен работать - т.е. один виджет в один момент времени.
Не вижу как его можно использовать в данном случае.... Непонимающий
Записан
Kolobok
Гость
« Ответ #10 : Ноябрь 05, 2010, 22:17 »

QStackedLayout работает так как он должен работать - т.е. один виджет в один момент времени.
Не вижу как его можно использовать в данном случае.... Непонимающий

Примерно так

Код:
    QWidget *parentw = new QWidget();

    QWidget *child1 = new QWidget();
    QListWidget *b1 = new QListWidget();
    QListWidget *b2 = new QListWidget();

    QHBoxLayout *hl = new QHBoxLayout();
    hl->addWidget(b1);
    hl->addWidget(b2);
    child1->setLayout(hl);
    child1->show();

    QWidget *child2 = new QWidget(parentw);
    QPushButton *b3 = new QPushButton( "b3" );
    QPushButton *b4 = new QPushButton( "b4" );
    QVBoxLayout *vl = new QVBoxLayout(child2);
    vl->addWidget(b3,0,Qt::AlignHCenter);
    vl->addWidget(b4,0,Qt::AlignHCenter);
    child2->setLayout(vl);

    QStackedLayout *sl = new QStackedLayout();
    sl->addWidget(child1);
    sl->addWidget(child2);
    sl->setStackingMode(QStackedLayout::StackAll);

    parentw->setLayout(sl);
    sl->setCurrentWidget(child2);
    parentw->show();
Записан
korel
Гость
« Ответ #11 : Ноябрь 08, 2010, 11:28 »

Спасибо большое! Это как раз то, что мне нужно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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