Qt - dynamicznie dodawanie / wyświetlanie pasków narzędzi QToolBar

0

W aplikacji mam jeden główny pasek narzędzi i teraz po wybraniu konkretnej akcji z tego paska dodaje 2 pasek QToolBar i wszystko działa prawidłowo tylko nie podoba mi się to że dodatkowy pasek narzędzi automatycznie zmniejsza wysokość centralnego widgetu ( co jest zrozumiałe ). Czy jest możliwość aby ten dodatkowy pasek wyświetlał się nad tym centralnym widgetem bez pomniejszania go o swoją wysokość?

0

Jest chyba oczywiste, że w takiej sytuacji okno musi przytyć, co nie jest dobrym rozwiązaniem (użytkownik oczekuje, że rozmiar okna nie będzie mu się zmieniał w bez jego życzenia).
Zależnie od wymogów, można np ustalić minimalny rozmiar centralnego widgeta, wtedy system layoutów powinien automatycznie powiększyć okno by spełnić to ograniczenie.
Możesz ręcznie wymusić tycie okna, gdy dodajesz toolbar-a.

0

No właśnie jest to oczywiste ale chciałbym to ominąć. W sensie żeby dodatkowy pasek ( on nie koniecznie musi być jako QToolBar może to być widget lub cokolwiek innego ) wyświetlał się nad centralnym widgetem nie zwiększając wielkości głównego okna ani nie zmniejszając centralnego widgetu.
Np facebook ma taki przycisk po lewej / prawej stronie który po naciśnięciu wysuwa zakładkę a ponowne naciśniecie ją zwija. Chciałbym uzyskać to samo tylko że przycisk mam na pasku narzędzi, dam screena.

1

W takim razie musisz wsadzić tego nowego toolbara do central widgeta.
Ja bym dodał jedno piętro (dodatkowego pustego widgeta, albo layouta) w cental widget, którym zawierałby się stary content oraz ten toolbar (możnanapisać własny layout, alekto wie, może QStackedLayout załatwiłby sprawę).
Cała sztuczka polegałaby na nałożeniu na siebie obu zawartości i przesuwaniu toolbara wtedy kiedy jest potrzebny.

0

Doszedłem do czegoś takiego jak w załączniku. Gdybym wyświetlał to z lewej / prawej strony to byłoby już ok bo po drodze nie miałbym innych elementów GUI. W moim przypadku ten widget idzie od samego dołu okna i przechodzi nad głównym toolbarem co nie wygląda dobrze. Co mogę zrobić aby wyglądało to tak jakby ten widget wychodził spod tego toolbara?

1

czyli nie zrobiłeś jak napisałem. Niech toolbar będzie dzieckiem central widgeta, wtedy zostanie przycięty do rozmiaru parenta.

Qt Documentation napisał(a)

A widget is clipped by its parent and by the widgets in front of it.

0

Dziękuje @MarekR22

Niech toolbar będzie dzieckiem central widgeta, wtedy zostanie przycięty do rozmiaru parenta.

To świadczy o tym ile jeszcze nie wiem... A Twój sposób pewnie i był bardzo dobry ale muszę się przyznać że ni jak nie potrafiłem sobie wyobrazić w jaki sposób miałbym nakładać na siebie te widgety. Nie potrafiłem ułożyć tego tak aby toolbar był w centralnym widgecie razem z innym i jednocześnie by był nad tym drugim tak by nie zabierał mu miejsca.

1 użytkowników online, w tym zalogowanych: 0, gości: 1