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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: растягивание QBoxLayout  (Прочитано 4344 раз)
antoshib
Гость
« : Октябрь 30, 2012, 10:15 »

Здравствуйте, подскажите способ как растянуть QBoxLayout до размеров родительского виджета?
В частности, хочется разместить этот лэйаут в QWidget, расположенный на вкладке QTabWidget
или в ячейке таблицы QTableWidget.
Записан
spirits25
Гость
« Ответ #1 : Октябрь 30, 2012, 10:30 »

То есть у вас код
Код:
myLayout = new QVBoxLayout(parentWidget);
не растягивает myLayout по всему parentWidget'у? Дайте код и описание проблемы поточнее.
Записан
antoshib
Гость
« Ответ #2 : Ноябрь 01, 2012, 13:18 »

Нужного эффекта в дизайнере добился, но в коде не до конца разобрался.
Если в дизайнере на форму выложить QWidget и в него QVBoxLayout вставить,
то этот QVBoxLayout сам по себе не растянется, а надо выполнить
команду "Компановка/Скомпоновать по горизонтали". Никак не пойму - в
коде как это достигается?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Ноябрь 01, 2012, 14:02 »

Код
C++ (Qt)
QWidget *w = new QWidget;
QVBoxLayout *layout = new QVBoxLayout(w); // обрати внимание на параметр конструктора
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
antoshib
Гость
« Ответ #4 : Ноябрь 01, 2012, 14:24 »

заметил, но дизайнер в обоих случаях генерит код, где у лэйаута в параметре указан виджет.
вот вижу разницу в том, что какой-то вспомогательный лэйаут присутствует.
Код:
        widget = new QWidget(Dialog);
        widget->setObjectName(QString::fromUtf8("widget"));
        widget->setGeometry(QRect(60, 40, 211, 151));
        horizontalLayoutWidget = new QWidget(widget);
        horizontalLayoutWidget->setObjectName(QString::fromUtf8("horizontalLayoutWidget"));
        horizontalLayoutWidget->setGeometry(QRect(10, 30, 160, 80));
        horizontalLayout = new QHBoxLayout(horizontalLayoutWidget);
        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
        horizontalLayout->setContentsMargins(0, 0, 0, 0);
после команды "скомпоновать горизонтально"
Код:
        widget = new QWidget(Dialog);
        widget->setObjectName(QString::fromUtf8("widget"));
        widget->setGeometry(QRect(60, 40, 131, 121));
        horizontalLayout_2 = new QHBoxLayout(widget);
        horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
        horizontalLayout = new QHBoxLayout();
        horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));

        horizontalLayout_2->addLayout(horizontalLayout);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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