【问题标题】:How do I align centre image horizontally in PyQt5?如何在 PyQt5 中水平对齐中心图像?
【发布时间】:2021-08-12 09:58:13
【问题描述】:

我正在做我的大学项目,我想将图像水平居中对齐,我尝试了很多方法但没有找到解决方案。这是我的代码:

from PyQt5.QtGui import QPalette, QLinearGradient, QColor, QBrush, QPixmap
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
import sys

from PyQt5 import QtGui


class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.acceptDrops()
        self.setWindowTitle("Mask Detection")
        self.setWindowIcon(QtGui.QIcon('img.png'))
        self.setGeometry(0, 0, 400, 300)
        self.label = QLabel(self)
        self.label.setAlignment(Qt.AlignCenter)
        self.pixmap = QPixmap('PBL.png')
        self.label.setPixmap(self.pixmap)
        self.label.resize(self.pixmap.width(),
                          self.pixmap.height())
        self.show()

App = QApplication(sys.argv)
window = Window()

p = QPalette()
gradient = QLinearGradient(0, 0, 0, 400)
gradient.setColorAt(0.0, QColor(56, 93, 166))
gradient.setColorAt(1.0, QColor(10, 123, 146))
p.setBrush(QPalette.Window, QBrush(gradient))
window.setPalette(p)

sys.exit(App.exec())

【问题讨论】:

    标签: python-3.x pyqt pyqt5 qlabel


    【解决方案1】:

    对齐是相对于元素本身的几何形状的,由于 QLabel 的几何形状与 QPixmap 的大小相同,因此它不会产生影响。解决办法是让QLabel的几何形状和窗口一样,可以在centralWidget中设置:

    self.setCentralWidget(self.label)
    

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 2018-06-23
      • 2012-03-15
      • 2020-05-05
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2021-07-08
      • 2015-09-02
      相关资源
      最近更新 更多