Я хотел знать, можно ли его скрыть вертикальную компоновку. В настоящее время у меня горизонтальный макет с двумя вертикальными макетами. Я хотел скрыть один из вертикальных макетов (со всем содержимым) при нажатии кнопки. Любые предложения о том, как я могу это сделать.Скрывать вертикальную компоновку программно?
ответ
Вместо вставки вертикальных макетов непосредственно в горизонтальной компоновки верхнего уровня, используйте контейнер виджетов легко управлять видимостью:
// Create your left and right widgets
QWidget* leftWidget = new QWidget();
QVBoxLayout* leftLayout = new QVBoxLayout(leftWidget);
QWidget* rightWidget = new QWidget();
QVBoxLayout* rightLayout = new QVBoxLayout(rightWidget);
// Populate your vertical layouts here ...
QHBoxLayout* horizontalLayout = new QHBoxLayout(parentWidget);
horizontalLayout->addWidget(leftWidget);
horizontalLayout->addWidget(rightWidget);
Тогда вы можете просто скрыть или показать leftWidget
или rightWidget
эффективно управлять видимостью все в вертикальных макетах, которые у вас есть, без необходимости скрывать/показывать каждый отдельный виджет.
Мое предложение:
// l is the layout pointer
for (int i = 0; i != l->count(); ++i) {
QWidget* w = qobject_cast<QWidget*>(l->itemAt(i));
if (w != 0) {
w->setVisible(false); // hides the widget
}
else {
// do some recursive things with the layout
}
}
(Надеюсь, что это работает;))
Виджет в основном невидимо.
Как @jmk сказал, вам нужно использовать QWidget. Я просто добавлю, что это очень легко превратить существующую горизонтальную или вертикальную компоновку в виджет с помощью Qt Designer, щелкнув правой кнопкой мыши на нем и выбрав Morph Into-> QWidget:
Раскладка полностью но теперь вы можете показать/скрыть макет, потому что это обычный виджет с этим макетом.
- 1. Android - отключить вертикальную компоновку для всего приложения
- 2. Программно скрывать неполные элементы
- 3. Программно скрывать простой префикс
- 4. Программно скрывать SPField
- 5. Как использовать автоматическую компоновку программно?
- 6. Добавить вертикальную линию делителя программно
- 7. Программно скрывать свойства в PropertyGrid
- 8. Скрывать каталоги программно в C#
- 9. Программно скрывать Apple iAd ADBannerView
- 10. Каких разница между ActionBar и создать вертикальную компоновку для ActionBar
- 11. Как использовать полимерную вертикальную компоновку с маркой-топ auto
- 12. Как создать вертикальную компоновку 50/50 со сложными GridViews?
- 13. изменить линейную компоновку высоты программно в android
- 14. Скрыть компоновку Программно с помощью swift 3x
- 15. Отключить вертикальную прокрутку в UICollectionView программно
- 16. Как программно ориентировать вертикальную метку в ярлыке?
- 17. Можно ли скрывать значок док-станции программно
- 18. программно отображать или скрывать связанные граничные поля
- 19. Как скрывать макеты/представления программно в Android
- 20. Как программно скрывать рекламу в Android?
- 21. ASP.NET: отображать/скрывать элементы списка переключателей программно
- 22. Добавить относительную компоновку ниже текущей относительной компоновки программно в Android
- 23. Как позиционировать представления/компоновку программно в линейном макете
- 24. Как преобразовать линейную компоновку в относительную компоновку
- 25. Как сделать вертикальную блокировку прокрутки в андроиде?
- 26. Программно скрывать множество файлов при создании гибридного iso с hdiutil
- 27. Программно скрывать изображения в столбцах изображений Telerik RadGrid
- 28. Как скрывать строку состояния программно в iOS 8
- 29. iOS: программно скрывать строку состояния на основе метода NOT viewController
- 30. PySide/QT - Как добавить горизонтальную или вертикальную компоновку в макет сетки
Такой подход может работать, за исключением того, что вы будете явно устанавливать видимость для каждого виджета. Если некоторые из этих виджетов уже были скрыты, тогда вам придется быть осторожными, когда вы снова сделаете их видимыми. В этом случае гораздо проще использовать родительский виджет для контроля видимости. – jmk