Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Получение определенного текста при нажатии на ячейку в QTreeWidget

#python #python_3x #pyqt5


Как реализовать функцию вывода текста который хранится в определенной ячейке в QTreeWidget
при нажатии на эту ячейку. Т.е. пользователь нажимает ЛКМ на любую ячейку и текст из
этой ячейки выводится на экран (или в моем случае пока что в консоль). Пока что понял
как вывести текст при нажатии на строку в поле и вывод определенного столбца

import sys
from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QApplication, QWidget


def asd(a):
    print(a.text(1))


if __name__ == '__main__':
    app = 0
    if QApplication.instance():
        app = QApplication.instance()
    else:
        app = QApplication(sys.argv)

    l1 = QTreeWidgetItem(["String A", "String B", "String C"])
    l2 = QTreeWidgetItem(["String AA", "String BB", "String CC"])
    for i in range(3):
        l1_child = QTreeWidgetItem(["Child A" + str(i), "Child B" + str(i), "Child
C" + str(i)])
        l1.addChild(l1_child)

    for j in range(2):
        l2_child = QTreeWidgetItem(["Child AA" + str(j), "Child BB" + str(j), "Child
CC" + str(j)])
        l2.addChild(l2_child)
    w = QWidget()
    w.resize(510, 210)

    tw = QTreeWidget(w)
    tw.resize(500, 200)
    tw.setColumnCount(3)
    tw.setHeaderLabels(["Column 1", "Column 2", "Column 3"])
    tw.addTopLevelItem(l1)
    tw.addTopLevelItem(l2)
    tw.itemClicked.connect(asd)

    w.show()
    sys.exit(app.exec_())

    


Ответы

Ответ 1



def asd(a, c): print(a.text(c)) UPDATE: def asd(a, c): v = [] for i in range(a.columnCount()): v.append(a.text(i)) print(*v)

Комментариев нет:

Отправить комментарий