Каков наилучший подход к выравниванию меток с соответствующими им QlistWidgets? - PullRequest
1 голос
/ 20 апреля 2019

У меня есть серия QlistWidgets, и над ними расположены ярлыки. Я не знаю лучшего подхода к выравниванию меток, чтобы они находились непосредственно над QlistWidget, для которых они являются заголовками, и чтобы это выравнивание работало для любого размера монитора. В настоящее время я использую вертикальный макет с двумя добавленными горизонтальными макетами: первый горизонтальный имеет метки заголовка, а второй - серию QlistWidgets.

это то, что у меня сейчас есть:

enter image description here

и вот что я хотел бы:

][2]

1 Ответ

1 голос
/ 20 апреля 2019

Вы должны использовать 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_())

enter image description here

...