【发布时间】:2014-12-14 19:54:17
【问题描述】:
我在自定义的QPushButton 类中重新实现(重载)了sizeHint() 函数,如下所示:
QSize CustQPushButton::sizeHint()const
{
QWidget *parentWindow=this->parentWidget(); //a pointer to the parent window
return QSize(parentWindow->width()/10,60);
}
问题是:
当窗口最初显示时,我的按钮的宽度是预期的(窗口的 1/10),但是当窗口调整大小时
按钮的大小不会与窗口(父级)成比例。 CustQPushButton 大小策略设置为 Fixed/Fixed,我的实例化按钮位于 QGridLayout 内。
有人可以帮帮我吗?
【问题讨论】:
-
我不认为你想要修复。我正在考虑扩展或首选。
-
实际上我想要修复。我希望按钮的宽度提示与父窗口宽度成比例。
-
让父 resizeEvent 为所有 CustQPushButton 按钮调用 adjustSize。
-
我尝试实现您的代码“AlexanderVX”,但它也无法预测:最初按钮是相当的,然后在调整窗口大小时它们会重叠。感谢您的想法。
-
如果layouts 和最小/最大尺寸的组合不能达到你想要达到的效果,而不是重载 sizeHint,也许可以试试?