【发布时间】:2018-10-12 17:25:22
【问题描述】:
我需要在标签中显示图片和文字,这是我的代码:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MyLabel(QLabel):
def __init__(self):
super(MyLabel, self).__init__()
def paintEvent(self, QPaintEvent):
pos = QPoint(50, 50)
painter = QPainter(self)
painter.drawText(pos, 'hello,world')
painter.setPen(QColor(255, 255, 255))
class Window(QWidget):
def __init__(self):
super(Window, self).__init__()
layout = QHBoxLayout(self)
self.label = MyLabel()
self.pixmap = QPixmap('icon.png')
self.label.setPixmap(self.pixmap)
layout.addWidget(self.label)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
标签只显示文字,缺少图片。 如何在标签中同时显示图像和文本。
感谢 eyllanesc 解决了这个问题。
不过,我还有两个问题。
发现如果我在MyLable的paintEvent中显示图片和文字,点赞:
def paintEvent(self, QPaintEvent):
super(MyLabel, self).paintEvent(QPaintEvent)
pos = QPoint(50, 50)
painter = QPainter(self)
painter.drawText(pos, 'hello,world')
painter.setPen(QColor(255, 255, 255))
self.pixmap = QPixmap('C:\\Users\\zhq\\Desktop\\DicomTool\\icon.png')
self.setPixmap(self.pixmap)
即使我先显示文本然后显示图像,文本也会显示在图像上。为什么?
其次,当我在MyLabel的paintEvent中显示图片和文字没有super(MyLabel, self).paintEvent(QPaintEvent)时,发现只显示文字,而且图片不见了:
def paintEvent(self, QPaintEvent):
pos = QPoint(50, 50)
painter = QPainter(self)
painter.drawText(pos, 'hello,world')
painter.setPen(QColor(255, 255, 255))
self.pixmap = QPixmap('C:\\Users\\zhq\\Desktop\\DicomTool\\icon.png')
self.setPixmap(self.pixmap)
【问题讨论】: