我目前正在尝试将垂直滚动条的步长调整为可滚动且响应迅速的QVBoxLayout中对象的高度。这样一来,滚动步骤就可以精确向下滚动一个小部件。 QVBoxLayout内部的所有对象都具有相同的几何形状。
因此,我需要QVBoxLayout内部对象之一的当前(活动)高度。我已经尝试了以下方法:
初始化对象的高度为300(未固定)。
然后通过调整包含QVBoxLayout的窗口的大小来动态调整高度。
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;
结果为以下输出:
height:300
geometry-height:300
frameSize-height:300
frameGeometry-height:300
normalGeometryheight:300
minimumHeight-height:0
maximumHeight-height:16777215
sizeHint-height:50
在此先感谢您的帮助!
最佳答案
方法QWidget::height()
返回小部件的实际大小,而不仅是初始化时的大小:请参见此answer。
关于c++ - 如何在响应QVBoxLayout中获取QWidget的当前宽度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36449393/