如何在 PyQt5 中水平对齐中心图像?

Posted

技术标签:

【中文标题】如何在 PyQt5 中水平对齐中心图像?【英文标题】:How do I align centre image horizontally in 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())

【问题讨论】:

【参考方案1】:

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

self.setCentralWidget(self.label)

【讨论】:

以上是关于如何在 PyQt5 中水平对齐中心图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在tailwind-css中水平对齐图像

如何在 Laravel 微风中的 tailwind-css 中水平对齐图像

Bootstrap 3中水平对齐缩略图到中心

在 React 中水平方向对齐图像和文本

无法在打印预览中水平对齐图像

使用 VBA 宏在 Word 中水平对齐(分布)图像