我尝试了覆盖方法hasHeightToWidth()和heightToWidth(),但是由于某些原因,该方法不起作用。有没有可以使用的完整示例?
Upd1:
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被多次调用