如何在 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 中水平对齐中心图像?的主要内容,如果未能解决你的问题,请参考以下文章