这很简单,但我不明白为什么覆盖文本没有显示在另一个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))
只有文本的第一个字母可见。我还尝试设置一些默认文本,然后它显示黑色背景的文本,然后该区域还显示了上面第二种方法产生的更多数据。有关完整代码,请查看此回购
要同时显示图像和文本,以下方法可能很有用:
-
将图像设置为标签上的背景图像:
label.setStyleSheet("background-image: url(:/1.png);")
-
设置要在图像顶部显示的文本:
label.setText("text")
..