Как добавить/убрать addLegend в pyqt?

Предположим, я рисую бесконечные линии. И я хочу их подписать.

pen = pg.mkPen(color=(0,255,0), width=2, style=QtCore.Qt.SolidLine)
self.graphWidget.addLine(x=10, y=None,pen = pen)
self.graphWidget.addLine(x=20, y=None,pen = pen)

Я знаю, как добавить подпись, только когда используешь self.graphWidget.plot (там есть атрибут name, который задаешь) добавляешь перед этой функцией addLegend() и вуаля: все работает.

Как быть если я не использую graphWidget.plot, как подписать линии, созданные addLine? И как потом с помощью функции deleteItem() удалить эти подписи?


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

import sys
from PyQt5 import QtCore, QtWidgets, QtGui
import pyqtgraph as pg


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        self.graphWidget = pg.PlotWidget()         
        self.setCentralWidget(self.graphWidget)

        pen = pg.mkPen(color='b', width=5, style=QtCore.Qt.SolidLine)
        self.graphWidget.addLine(x=None, y=0, pen=pen) 
        pen = pg.mkPen(color=(0,255,0), width=2, style=QtCore.Qt.SolidLine)
        self.graphWidget.addLine(x=10, y=None,pen = pen)
        self.graphWidget.addLine(x=20, y=None,pen = pen)

        self.text = pg.TextItem(text='Hello', color=(250, 20, 20), angle=90)
        self.text.moveBy(10, 0.5)
        self.graphWidget.addItem(self.text)
        self.text2 = pg.TextItem(text='World', color=(250, 120, 120))
        self.text2.moveBy(20, 0.5)
        self.graphWidget.addItem(self.text2)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    app.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка