Как нарисовать линию поверх QPixmap PyQt5
Пишу MP3-Player. Только начал писать и сразу же столкнулся с проблемой, о решении которой толком ничего не нашел в гугле.
Как нарисовать линию поверх QPixmap?
UPD: Причем кнопки, надписи и другие виджеты спокойно расставляются поверх QPixmap.
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self, parent = None):
QWidget.__init__(self, parent)
self.resize(800,500)
self.setFixedSize(self.size())
self.setWindowIcon(QIcon("images/mp3-player.ico"))
self.setWindowTitle("MP3-Player")
self.background_image_pixmap = QPixmap("images/background.jpg")
self.background_image = QLabel(self)
self.background_image.setGeometry(0, 0, 800, 500)
self.background_image.setPixmap(self.background_image_pixmap)
def paintEvent(self, event):
painter = QPainter(self.background_image)
painter.setPen(Qt.black)
painter.drawLine(0,0,100,50)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
import sys
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.resize(512, 512)
# self.setFixedSize(self.size())
self.setWindowIcon(QIcon("images/mp3-player.ico"))
self.setWindowTitle("MP3-Player")
self.image = QPixmap("lena.jpg") # +++
w = self.image.size().width()
h = self.image.size().height()
self.background_image = QLabel("<h2 style='color: blue'>lena.jpg</h2>", self)
self.background_image.move(w-240, h-100)
def paintEvent(self, event):
painter = QPainter(self)
painter.drawPixmap(QPoint(), self.image) # +++
painter.setPen(QPen(Qt.red, 5))
painter.drawLine(10, 10, 500, 500)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
