Как добавить/убрать 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_())
