对于那些没有阅读我的Qt questoins的人,我正在学习Qt的项目。我对GUI设计的经验很少,而不是Qt。
我有一个水平布局,我想用一些按钮填充。我可以很好地提供这些按钮,但我以前的方形按钮水平拉伸以占用更多空间。
我想让布局管理器确定调整这些按钮大小的最佳方法,但我也希望它们的原始比例保持不变。例如,如果我开始使用32X32按钮需要缩小以适应布局中的所有按钮,我希望它们按比例缩小,以便保持宽高比例。 20X20,16X16,12X12都可以,但24X16将是一个不可接受的尺寸示例。
我在按钮和拉伸选项上修改了尺寸政策。即使在阅读了QPushButton和QHboxLayout类后,我也没有看到如何做到这一点。它是如何完成的?
感谢。
答案 0 :(得分:2)
只要我正确理解了这个问题,我认为你想要的是QBoxLayout::addStretch()
。这将添加填充未使用空间的spacer对象。因此按钮将具有理想的尺寸,间隔件将填充其余部分。您可以尝试在Designer中尝试使用它,它比写/编译/运行周期更容易。
答案 1 :(得分:2)
您应该查看this question的答案。这是我在那里的回答。
您需要创建QLayoutItem的自定义衍生,它会覆盖bool hasHeightForWidth()
和int heightForWidth( int width )
以保留纵横比。您可以传递按钮并查询它,也可以直接设置比率。您还需要确保widget()函数返回指向正确按钮的指针。
完成后,您可以按照与窗口小部件相同的方式将布局项添加到布局中。因此,当您添加按钮时,请将其更改为使用自定义布局项类。
我实际上没有测试任何这个,所以这是一个理论上的解决方案。如果需要的话,我不知道有任何办法通过设计师来做这个解决方案。