使用另一个QLabel显示图像的QLabel ontop来显示文本已经变得如此痛苦



这很简单,但我不明白为什么覆盖文本没有显示在另一个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")..

最新更新