c++ - 如何在响应式 QVBoxLayout 中获取 QWidget 的当前宽度?

标签 c++ qt size qwidget

我目前正在尝试调整垂直滚动条的步长以适应可滚动和响应 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/

相关文章:

c++ - 如何只选择需要的 Qt 头文件?

java - 使用方法更改现有数组的大小

java - 收到错误消息,提示我的数组大小

c# - 是否有编译器作为 C++ 的服务?

linux 的 c++ 应用程序将 ipv4 数据包转换为 ipv6

c++ - 如何使用 QScintilla 和 C++ 使用自动完成功能?

c++ - 如何在Qt中检查所选驱动器的可用空间?

database - 分配给 SQLite 内存数据库的内存大小

c++ - 是否可以为 FindFirstFile() 函数使用引号?

c++ - IPP 和 DEV C++