Ich versuche gerade, die Schrittweite einer vertikalen Bildlaufleiste an die Höhe der Objekte im scrollbaren und reaktionsfähigen QVBoxLayout anzupassen. Ein Scroll-Schritt scrollt genau ein Widget herunter. Alle Objekte in QVBoxLayout haben die gleiche Geometrie.Wie bekomme ich die aktuelle Breite von QWidget in responsive QVBoxLayout?
Daher würde ich die aktuelle (Live) Höhe eines der Objekte in der QVBoxLayout benötigen. Ich habe bereits die folgenden Methoden ausprobiert:
Das Objekt wird mit einer Höhe von 300 initialisiert (nicht behoben). Die Höhe wird dann dynamisch angepasst, indem das Fenster einschließlich des QVBoxLayout in der Größe verändert wird.
QWidget* pWidget = PointerToMyWidgetInsideQVBoxLayout;
std::cout << "height:" << pWidget->height() << std::endl; /// @todo PHIL: height gives only initial value, not current height
std::cout << "geometry-height:" << pWidget->geometry().height() << std::endl;
std::cout << "frameSize-height:" << pWidget->frameSize().height() << std::endl;
std::cout << "frameGeometry-height:" << pWidget->frameGeometry().height() << std::endl;
std::cout << "normalGeometryheight:" << pWidget->normalGeometry().height() << std::endl;
std::cout << "minimumHeight-height:" << pWidget->minimumHeight() << std::endl;
std::cout << "maximumHeight-height:" << pWidget->maximumHeight() << std::endl;
std::cout << "sizeHint-height:" << pWidget->sizeHint().height() << std::endl;
Daraus ergibt sich die folgende Ausgabe:
height:300
geometry-height:300
frameSize-height:300
frameGeometry-height:300
normalGeometryheight:300
minimumHeight-height:0
maximumHeight-height:16777215
sizeHint-height:50
Vielen Dank im Voraus für Ihre Hilfe!
Vielleicht ein 'std :: cout 'jedes Mal, wenn Sie die Größe des Widgets ändern? – IAmInPLS
Unterklasse 'QWidget' und überschreiben [' resizeEvent'] (http://doc.qt.io/qt-5/qwidget.html#resizeEvent). Dann emittieren sie ein Signal, das eine neue Größe als Argument sendet. Oder wenn Sie keine Unterklasse erstellen möchten, installieren Sie einfach einen Ereignisfilter (http://doc.qt.io/qt-5/eventsandfilters.html#event-filters). – thuga
Was ist dein Problem? Die von Ihnen ausgegebenen Werte ** sind zu dem Zeitpunkt korrekt, zu dem Sie sie erhalten **. Es liegt an dir, die Werte ** nach ** der Größe des Widgets, Hinweis Hinweis zu bekommen. –