Mam QGLWidget, który chcę zmienić rozmiar do określonej rozdzielczości (większe niż okno zawierające). Moim zamiarem jest, aby okno rozszerzyło się, dopóki widget nie pasuje do wnętrza, ale nie może znaleźć sposobu, aby to zrobić.Zmień rozmiar okna w celu dopasowania do zawartości
Próbowałem kilku poleceń po zmianie rozmiaru QGLWidget, aby działało bez powodzenia. Wymienię tutaj wyniki:
- nic więcej: Widget zachodzi na całe okno. Ostatecznie zostanie przeskalowany w celu dopasowania powrotem w mniejszym oknie
mainWindow.adjustSize()
: Widget zostanie zmieniony na (0, 0)mainWindow.resize(mainWindow.sizeHint())
: patrz wyżejmainWindow.resize(mainWindow.minimumSizeHint())
: patrz wyżej
Czytałem również w this thread, przed wykonaniem zmiany rozmiaru okna głównego I należy uruchomić pętlę zdarzeń, aby ponownie obliczyć nowe rozmiary, więc wstawiłem QCoreApplication::processEvents
, aby to zrobić, bez żadnego widocznego efektu.
Jak zmienić rozmiar okna za pomocą widżetu?
Edit
GLWidget nie jest jedynym widget z okna. Jest osadzony w rozdzielaczu wraz z polem grupowym.
Choć to naprawdę zmienia rozmiar okna do potrzebnego rozmiaru to zapobiega dalszemu rozmiaru przez użytkownika. Z dokumentacji: 'Ustawia minimalny i maksymalny rozmiar widgetu na s, zapobiegając w ten sposób jego rosnącemu lub zmniejszającemu się. Po prostu próbowałem zapisać i przywrócić stare minimalne i maksymalne rozmiary, ale to nie powoduje żadnych zmian . – Nobody
Zamiast 'setFixedSize()', wypróbuj 'setMinimumSize()' i użyj 'setSizePolicy()'. Naprawdę masz dużą kontrolę nad tym, jak rzeczy rozwijają się i reagują za pomocą 'setSizePolicy()'. 'setFixedSize()' robi kilka rzeczy na raz, więc prawdopodobnie nie jest to, co chcesz w tym przypadku. – phyatt
'minimumSize' wydaje mi się również niewłaściwe. Użytkownik powinien mieć możliwość dowolnej zmiany rozmiaru. Po prostu potrzebuję okna, aby podskoczyć do rozmiaru, który pasuje do żądanego rozmiaru 'QGLWidget'. – Nobody