Я попытался переопределить методы hasHeightToWidth() и heightToWidth(), но по какой-то причине это не сработало. Есть ли какой-нибудь полный пример, который я могу использовать?
Обновление 1:
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget() {
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
sizePolicy.setHeightForWidth(true);
setSizePolicy(sizePolicy);
}
bool hasHeightForWidth() const override {
std::cout << __FUNCTION__ << std::endl;
return true;
}
int heightForWidth(int w) const override {
std::cout << __FUNCTION__ << " " << w << std::endl;
return w;
}
QSize sizeHint() const override {
return QSize(100, heightForWidth(100));
}
};
Экземпляры MyWidget вставляются в QHBoxLayout.
Я использую qt5.
Отладка std::cout показывает, что hasHeightForWidth и heightForWidth вызываются много раз