Я реализую виджет, который в основном представляет собой список кнопок (которые представляют структуру файла).Это выглядит так:
[[recentFolder] // bar
[(stretch)
[folderA], // foo
[folderB], // programs
[folderC], // c:
(stretch)]
[rootDir]] // my computer
Я надеюсь, что вы можете увидеть три виджета в моем макете: кнопка папки для самой последней папки вверху, кнопка папки для корневой папки внизу и виджет, которыйотображает много кнопок папок в середине.Все кнопки папок имеют фиксированную ширину и высоту.Я добавил растягиваемые области в верхней / нижней части центрального виджета, потому что это единственный виджет, который должен иметь возможность изменять размеры (расширение политики по высоте).Но когда я изменяю размер родительского виджета, он выглядит следующим образом:
[[recentFolder] // bar
// empty space does not
// belong to any child
[(stretch)
[folderA], // foo
[folderB], // programs
[folderC], // c:
(stretch)]
// empty space does not
// belong to any child
[rootDir]] // my computer
, что означает, что центральный виджет вообще не получает никакого события изменения размера.Мне нужно, чтобы он менялся следующим образом:
[[recentFolder] // bar
[
// child was resized
(stretch)
[folderA], // foo
[folderB], // programs
[folderC], // c:
(stretch)
// child was resized
]
[rootDir]] // my computer
Как вы можете (должны) видеть, мои области растяжения не имеют никакого эффекта и не работают так, как я думаю.Я прихожу из .NET и скучаю по тому, как я мог прикрепить элементы управления в родительском, чтобы они использовали все существующее пространство.Любая идея, как сделать это в Qt 4?
Сейчас я звоню setGeometry()
на моего центрального ребенка в рамках события resize родителей, которое работает, но обходит менеджер макета.