5

メソッド 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を使用しています。

hasHeightForWidth と heightForWidth が何度も呼び出される std::cout のショーをデバッグします

4

0 に答える 0