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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QGroupBox  (Прочитано 6174 раз)
Martiro
Гость
« : Апрель 13, 2007, 08:47 »

Вопрос, собственно, простенький...
Есть форма, на ней присутствует QGroupBox, в который включены 2 виджета: QLineEdit и QPushButton. Проблема состоит в том, что когда задаешь заголовок у групбокса, эти элементы наезжают на надпись...
Каким образом от этого избавиться? Как реализовать? Или кроме как тупо задавать setMinimumHeight(), никакого выхода не существует?
(QT ver. 3.3.3)
Записан
alexis
Гость
« Ответ #1 : Апрель 13, 2007, 09:17 »

Использовать менеджеры размещения(QLayout's и его наследников)
Записан
Martiro
Гость
« Ответ #2 : Апрель 13, 2007, 12:18 »

В том и дело, что с этими лаяутами такое получается... Может, что-нибудь с "родителями" не так?
Код:
gbPage1 = new QGroupBox();
gb1 = new QGroupBox(labelRCamObjFilm, gbPage1);
ed1 = new rprLineEdit(gb1, QString::null);
sel1 = new QPushButton("...", gb1);
mainLayout = new QVBoxLayout(gbPage1);
topLayout = new QVBoxLayout(mainLayout);
        topLayout->setMargin(3);
        topLayout->addWidget(gb1);
inLayout = new QHBoxLayout(gb1);
        inLayout->setSpacing(3);
        inLayout->setMargin(3);
        inLayout->addWidget(ed1);
        inLayout->addWidget(sel1);
mainLayout->addStretch(2);
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Апрель 13, 2007, 12:34 »

margin попробуй побольше поставить
Записан
Martiro
Гость
« Ответ #4 : Апрель 13, 2007, 13:04 »

margin - это, конечно, хорошо, но в целом групбокс выглядит не так, как хотелось бы... :mrgreen: Да и при изменении размера шрифта, QLineEdit всё равно начинает залазить...
Нет ли какого-нибудь другого выхода?...  :roll:
Записан
alexis
Гость
« Ответ #5 : Апрель 13, 2007, 14:57 »

Ты или код полностью приведи, где все ползет, чтобы другие могли попробовать собрать у себя.
Или сделай такой же виджет в дизайнере и посмотри как его rcc преобразует.
штатные телепаты в отпуске Улыбающийся
Записан
Svetlana
Гость
« Ответ #6 : Апрель 19, 2007, 16:29 »

Подскажите плз, с чем может быть связана следующая крякозябла
Код:
      QVGroupBox * pgb = new QVGroupBox(unicodeString, this);
pgbP->setColumns(2);
pgb->setFixedSize(140, 200);
      pgb->addSpace(25);
m_led1 = new KLed(QColor(255, 255, 0), pgb);
pgb->addSpace(25);
new QLabel(unicodeString, pgb);
pgb->addSpace(25);
m_led2 = new KLed(QColor(0, 100, 0), pgb);
// pgb->addSpace(25);
new QPushButton(QString("push it"), pgb);

В таком виде (при закоменченной строчке) в QGroupBox помещаются три контрола во второй столбец и один(добавленный последним) в первый. Если строчку раскомментить, то все 4 контрола оказываются в первом столбце  :?: Кнопка растягивается на всю ширину группбокса.  Кто расскажет, чего я недопонимаю  :roll:
Да, QT 3.3.4.
Записан
Kosh
Гость
« Ответ #7 : Апрель 20, 2007, 09:51 »

Это потому, что заполнение бокса идет слева напрово:
Вариант без "//"

[space][____KLed__]
[space][___QLabel__]
[space][___ KLed___]
[space][QPushButton]

[space] имеет фиксированную высоту, но никто не запрещает ужимать его в ширину, вот и выходит, что все [space] ужались, а другие виджеты сдвинулись влево.

 Вариант с "//"
[___space___][  KLed ]
[___space___][QLabel]
[___space___][ KLed  ]
[QPushButton]
Записан
Svetlana
Гость
« Ответ #8 : Апрель 20, 2007, 12:34 »

Цитата: "Kosh"
Это потому ..

Мда, ртфм мне. На самом деле тут нужен QHGroupBox. Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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