这很简单,但我无法弄清楚为什么叠加文字没有显示在另一个QLabel的顶部,
这是我的代码,它将带有文本的叠加标签设置到显示图像的另一个现有标签
上def _buildUi(self):
self.label = QtGui.QLabel()
self.overlayExifText = QtGui.QLabel(self.label)
self.overlayExifText.setSizePolicy(QtGui.QSizePolicy.Ignored,
QtGui.QSizePolicy.Ignored)
self.overlayExifText.setStyleSheet("QLabel { color : blue; }")
self.overlayExifText.setAlignment(QtCore.Qt.AlignTop)
self.label.setBackgroundRole(QtGui.QPalette.Base)
self.label.setSizePolicy(QtGui.QSizePolicy.Ignored,
QtGui.QSizePolicy.Ignored)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.setCentralWidget(self.label)
这是更新当前图像的文本的方法
def showImageByPath(self, path):
if path:
self.overlayExifText.setText("\n".join(list(utils.getExifData((path)))))
image = QtGui.QImage(path)
pp = QtGui.QPixmap.fromImage(image)
self.label.setPixmap(pp.scaled(
self.label.size(),
QtCore.Qt.KeepAspectRatio,
QtCore.Qt.SmoothTransformation))
只有文字的第一个字母可见。我也尝试设置一些默认文本,然后显示带有黑色背景的文本,然后该区域还显示了上面第二种方法产生的更多数据。有关完整代码,请查看此repo
答案 0 :(得分:1)
按照方法同时显示图像和文本非常有用:
将图像设置为标签上的背景图像:
label.setStyleSheet("background-image: url(:/1.png);")
设置要在图像顶部显示的文字:
label.setText("text")
..