Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Martiro от Апрель 13, 2007, 08:47



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


Название: Вопрос по QGroupBox
Отправлено: alexis от Апрель 13, 2007, 09:17
Использовать менеджеры размещения(QLayout's и его наследников)


Название: Вопрос по QGroupBox
Отправлено: Martiro от Апрель 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);


Название: Вопрос по QGroupBox
Отправлено: Alex Custov от Апрель 13, 2007, 12:34
margin попробуй побольше поставить


Название: Вопрос по QGroupBox
Отправлено: Martiro от Апрель 13, 2007, 13:04
margin - это, конечно, хорошо, но в целом групбокс выглядит не так, как хотелось бы... :mrgreen: Да и при изменении размера шрифта, QLineEdit всё равно начинает залазить...
Нет ли какого-нибудь другого выхода?...  :roll:


Название: Вопрос по QGroupBox
Отправлено: alexis от Апрель 13, 2007, 14:57
Ты или код полностью приведи, где все ползет, чтобы другие могли попробовать собрать у себя.
Или сделай такой же виджет в дизайнере и посмотри как его rcc преобразует.
штатные телепаты в отпуске :)


Название: Вопрос по QGroupBox
Отправлено: Svetlana от Апрель 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.


Название: Вопрос по QGroupBox
Отправлено: Kosh от Апрель 20, 2007, 09:51
Это потому, что заполнение бокса идет слева напрово:
Вариант без "//"

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

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

 Вариант с "//"
[___space___][  KLed ]
[___space___][QLabel]
[___space___][ KLed  ]
[QPushButton]


Название: Вопрос по QGroupBox
Отправлено: Svetlana от Апрель 20, 2007, 12:34
Цитата: "Kosh"
Это потому ..

Мда, ртфм мне. На самом деле тут нужен QHGroupBox. Спасибо.