我有一个自定义小部件类:
class MyWidget : public QWidget
{
// code
};
我在QHBoxLayout
上添加了许多按钮,并将布局设置为MyWidget
对象。
我希望MyWidget
小部件具有其中包含的小部件的宽度(所有此类小部件均具有相同的大小)。
所以我推翻了sizeHint()
:
QSize MyWidget::sizeHint() const
{
if (auto pLayout = layout())
{
auto pItem = pLayout->itemAt(0);
//std::cout << pItem->widget()->width() << std::endl;
if (pItem && pItem->widget())
return QSize{ pItem->widget()->width(), QWidget::sizeHint().height() };
}
return QWidget::sizeHint();
}
现在,无论pItem->widget()->width()
的大小如何,pItem->widget()
始终报告相同的值。有什么问题吗?