如何解决Qt 布局包装项目
我怀疑这是可能的,但只是想问问以确保我没有错过任何东西。
是否可以通过任何方式使项目包装在 Qt 布局中?
例如,如果我将窗口的高度设置为特定值,如果垂直向下的项目太多,我希望项目环绕并创建第二列。因此,在此示例代码中,您最终将所有按钮置于彼此下方。我想要的是左边有 1、2、3,然后 4、5、6 应该被包装到右边的第二列。我能想到的唯一可能的解决方案是取窗口高度,然后除以项目数。并以这种方式获取列数。我不介意更改布局类型以使其正常工作,因此您可以这样做。请记住,这必须是动态的,因此它应该适用于 4 个项目或 24 个项目,仅作为示例。我知道您可以手动创建一个网格并自己“手动”定位它们。
import sys
from PySide2 import QtCore,QtGui,QtWidgets
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
# This has no effect,since the amount of buttons increases the height anyways
window.resize(100,100)
button1 = QtWidgets.QPushButton("One")
button2 = QtWidgets.QPushButton("Two")
button3 = QtWidgets.QPushButton("Three")
button4 = QtWidgets.QPushButton("Four")
button5 = QtWidgets.QPushButton("Five")
button6 = QtWidgets.QPushButton("Six")
layout = QtWidgets.QVBoxLayout()
layout.addWidget(button1)
layout.addWidget(button2)
layout.addWidget(button3)
layout.addWidget(button4)
layout.addWidget(button5)
layout.addWidget(button6)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。