Название: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: NOX86 от Май 19, 2010, 13:35 Есть некоторое количество рядов (QLablel+QWidget) надо по некоторому условию некоторые из них прятать.
Пытался делать hide() у соответствующих QLablel и QWidget; но проблема в том, что остаются пустые места после скрытия виджетов (http://img685.imageshack.us/img685/6898/clipboard01txa.jpg) Подскажите, как правильно реализовать скрытие\показ ряда в QFormLayout, учитывая что в дизайнере форма уже создана. Спасибо Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: kibsoft от Май 19, 2010, 13:38 Ну попробуй setVisible(false), но на hide такой же эффект должен быть..
Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: NOX86 от Май 19, 2010, 13:45 Код: inline void hide() { setVisible(false); } Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: kibsoft от Май 19, 2010, 14:02 Так ты и должен виджеты скрывать.. layout тут не при чем.
Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: NOX86 от Май 19, 2010, 14:07 Так ты и должен виджеты скрывать.. layout тут не при чем. Обратите, пожалуйста, внимание на начало второго (2) предложения. Оно вам ни о чём не говорит? Перефразируя данное предложение: "Скрываю виджеты - остаются пустые места как на картинке, в чём я лопухнулся?"Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: kibsoft от Май 19, 2010, 14:35 При растягивании у тебя виджеты тоже растягиваются? Мб забыл общий Layout поставить(для формы)?
Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: Wlad_C от Май 19, 2010, 15:22 Когда ты создавал основную форму, ты задал ей минимальный размер (по умолчанию, видимо).
Задай минимальные размеры и политику изменения размеров основной формы, на которой прячешь виджеты. Должно все заработать. Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: NOX86 от Май 19, 2010, 16:22 Поигрался с политиками и размерами - либо то же самое, либо виджеты "утопают" (пропадают) в границах QGroupBox.
Вот с этим uixml (http://pastebin.com/kJEWjgyR) проблемы. То же самое если скрывать програмно Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: 0xFF от Май 19, 2010, 23:08 Может попробывать добавить в лейаут, который стоит в QGroupBox это
Код
Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: NOX86 от Май 20, 2010, 00:01 Может попробывать добавить в лейаут, который стоит в QGroupBox это Не идёт, не через код, не через Дизайнер.Код
Задолбался я, подскажите каким бы это ещё образом скрывать\показывать поля. Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: mal от Май 20, 2010, 05:12 если на форме таки есть лэйаут (я для табличного представления использую QFormLayout либо QGridLayout ), то все прекрасно скрывается/раскрывается при использовании setVisible для требуемых виджетов (будь то label, lineEdit, ComboBox и проч.).
О чем Вам собственно тут и сказали. При этом происходит пропорциональное перераспределение остальных виджетов формы, находящихся в этом же лэйауте. Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: Unnamed_Hero от Май 23, 2010, 11:26 если на форме таки есть лэйаут (я для табличного представления использую QFormLayout либо QGridLayout ), то все прекрасно скрывается/раскрывается при использовании setVisible для требуемых виджетов (будь то label, lineEdit, ComboBox и проч.). Кстати, а возможно сделать так, чтобы виджеты в лейауте при этом не сдвигались, в расширялись только Spacer'ы рядом со спрятанным виджетом?О чем Вам собственно тут и сказали. При этом происходит пропорциональное перераспределение остальных виджетов формы, находящихся в этом же лэйауте. Название: Re: спрятать ряд (QLablel+QWidget) в QFormLayout Отправлено: dox от Август 01, 2010, 19:25 Приветствую. У меня похожая ситуация, но не такая как у автора поста. вообщем надо сделать виджет, кот. будет "липнуть" к левому нижнему углу. пытался сделать через виджет, в кот. лайоут, в нем виджеты. причем у лайоута установлено setSizeConstraint(QLayout::SetFixedSize); Когда скрываю один из виджетов в компоновщике, то он исчезает и виджет (содержащий компоновщик) уменьшается в размерах соотв.
|