我有一系列QlistWidget,并且在它们上方有标签。我不知道对齐标签的最佳方法,因此它们位于标题的QlistWidgets的正上方,并且可以在任何显示器尺寸下进行对齐。我目前正在使用添加了两个水平布局的垂直布局,第一个水平布局具有标题标签,第二个水平布局具有一系列QlistWidgets。
这是我目前拥有的:
这就是我想要的:
答案 0 :(得分:1)
您必须使用QGridLayout:
from PySide2 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
grid_layout = QtWidgets.QGridLayout(self)
name_lw = QtWidgets.QListWidget()
name_lw.addItems("Name1 Name2 Name3".split())
c_ver_lw = QtWidgets.QListWidget()
c_ver_lw.addItems("1 1 6 1 1 1".split())
l_ver_lw = QtWidgets.QListWidget()
l_ver_lw.addItems("2 6 6 6 2 2".split())
entity_name_lw = QtWidgets.QListWidget()
entity_name_lw.addItems("Entity1 Entity2 Entity3".split())
path_lw = QtWidgets.QListWidget()
path_lw.addItems("Path1 Path2 Path3".split())
titles = ("Name", "C-ver", "L-ver", "Entity Name", "Path")
lws = (name_lw, c_ver_lw, l_ver_lw, entity_name_lw, path_lw)
for i, (title, lw) in enumerate(zip(titles, lws)):
label = QtWidgets.QLabel(title)
grid_layout.addWidget(label, 0, i)
grid_layout.addWidget(lw, 1, i)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())