Russian Qt Forum
Ноябрь 24, 2024, 19:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
спрятать ряд (QLablel+QWidget) в QFormLayout
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: спрятать ряд (QLablel+QWidget) в QFormLayout (Прочитано 9771 раз)
NOX86
Гость
спрятать ряд (QLablel+QWidget) в QFormLayout
«
:
Май 19, 2010, 13:35 »
Есть некоторое количество рядов (QLablel+QWidget) надо по некоторому условию некоторые из них прятать.
Пытался делать hide() у соответствующих QLablel и QWidget; но проблема в том, что остаются пустые места после скрытия виджетов
Подскажите, как правильно реализовать скрытие\показ ряда в QFormLayout, учитывая что в дизайнере форма уже создана.
Спасибо
Записан
kibsoft
Хакер
Offline
Сообщений: 625
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #1 :
Май 19, 2010, 13:38 »
Ну попробуй setVisible(false), но на hide такой же эффект должен быть..
Записан
http://kibsoft.ru
- Download the Qt Media Encoding Library here
The apps that were written using QtMEL:
http://srecorder.com
- Screen recording software
NOX86
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #2 :
Май 19, 2010, 13:45 »
Код:
inline void hide() { setVisible(false); }
и эти методы есть только у виджета - у QLayoutItem оных нет
«
Последнее редактирование: Май 19, 2010, 14:09 от NOX86
»
Записан
kibsoft
Хакер
Offline
Сообщений: 625
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #3 :
Май 19, 2010, 14:02 »
Так ты и должен виджеты скрывать.. layout тут не при чем.
Записан
http://kibsoft.ru
- Download the Qt Media Encoding Library here
The apps that were written using QtMEL:
http://srecorder.com
- Screen recording software
NOX86
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #4 :
Май 19, 2010, 14:07 »
Цитата: kibsoft от Май 19, 2010, 14:02
Так ты и должен виджеты скрывать.. layout тут не при чем.
Обратите, пожалуйста, внимание на начало второго (2) предложения. Оно вам ни о чём не говорит? Перефразируя данное предложение: "Скрываю виджеты - остаются пустые места как на картинке, в чём я лопухнулся?"
Записан
kibsoft
Хакер
Offline
Сообщений: 625
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #5 :
Май 19, 2010, 14:35 »
При растягивании у тебя виджеты тоже растягиваются? Мб забыл общий Layout поставить(для формы)?
«
Последнее редактирование: Май 19, 2010, 15:22 от kibsoft
»
Записан
http://kibsoft.ru
- Download the Qt Media Encoding Library here
The apps that were written using QtMEL:
http://srecorder.com
- Screen recording software
Wlad_C
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #6 :
Май 19, 2010, 15:22 »
Когда ты создавал основную форму, ты задал ей минимальный размер (по умолчанию, видимо).
Задай минимальные размеры и политику изменения размеров основной формы, на которой прячешь виджеты. Должно все заработать.
Записан
NOX86
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #7 :
Май 19, 2010, 16:22 »
Поигрался с политиками и размерами - либо то же самое, либо виджеты "утопают" (пропадают) в границах QGroupBox.
Вот
с этим uixml
проблемы. То же самое если скрывать програмно
Записан
0xFF
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #8 :
Май 19, 2010, 23:08 »
Может попробывать добавить в лейаут, который стоит в QGroupBox это
Код
C++ (Qt)
layout
->
setSizeConstraint
(
QLayout
::
SetFixedSize
)
;
Записан
NOX86
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #9 :
Май 20, 2010, 00:01 »
Цитата: 0xFF от Май 19, 2010, 23:08
Может попробывать добавить в лейаут, который стоит в QGroupBox это
Код
C++ (Qt)
layout
->
setSizeConstraint
(
QLayout
::
SetFixedSize
)
;
Не идёт, не через код, не через Дизайнер.
Задолбался я, подскажите каким бы это ещё образом скрывать\показывать поля.
Записан
mal
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #10 :
Май 20, 2010, 05:12 »
если на форме таки есть лэйаут (я для табличного представления использую QFormLayout либо QGridLayout ), то все прекрасно скрывается/раскрывается при использовании setVisible для требуемых виджетов (будь то label, lineEdit, ComboBox и проч.).
О чем Вам собственно тут и сказали.
При этом происходит пропорциональное перераспределение остальных виджетов формы, находящихся в этом же лэйауте.
Записан
Unnamed_Hero
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #11 :
Май 23, 2010, 11:26 »
Цитата: mal от Май 20, 2010, 05:12
если на форме таки есть лэйаут (я для табличного представления использую QFormLayout либо QGridLayout ), то все прекрасно скрывается/раскрывается при использовании setVisible для требуемых виджетов (будь то label, lineEdit, ComboBox и проч.).
О чем Вам собственно тут и сказали.
При этом происходит пропорциональное перераспределение остальных виджетов формы, находящихся в этом же лэйауте.
Кстати, а возможно сделать так, чтобы виджеты в лейауте при этом не сдвигались, в расширялись только Spacer'ы рядом со спрятанным виджетом?
Записан
dox
Гость
Re: спрятать ряд (QLablel+QWidget) в QFormLayout
«
Ответ #12 :
Август 01, 2010, 19:25 »
Приветствую. У меня похожая ситуация, но не такая как у автора поста. вообщем надо сделать виджет, кот. будет "липнуть" к левому нижнему углу. пытался сделать через виджет, в кот. лайоут, в нем виджеты. причем у лайоута установлено setSizeConstraint(QLayout::SetFixedSize); Когда скрываю один из виджетов в компоновщике, то он исчезает и виджет (содержащий компоновщик) уменьшается в размерах соотв.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...