QWidget报告相同的错误宽度值

时间:2018-12-23 14:39:48

标签: qt qt5 size qwidget qlayout

我有一个自定义小部件类:

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()始终报告相同的值。有什么问题吗?

0 个答案:

没有答案