QWidget сообщает о том же неверном значении ширины - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть собственный класс виджетов:

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().В чем проблема?

...