【问题标题】:How do I align centre image on QLabel in PyQt5?如何在 PyQt5 中对齐 QLabel 上的中心图像?
【发布时间】:2020-05-05 17:58:27
【问题描述】:

我目前正在做一些基本的练习。我正在尝试重写一些我使用 tkinter 对 PyQt5 执行相同操作的应用程序。除了一个问题之外,一切正常 - 我有一个包含图像的 QLabel,我正在尝试将图像对齐在标签的中心,但它不想,图像保持与左侧对齐。代码如下:

from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout, QPushButton, QFileDialog
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon, QPixmap

app=QApplication([])
window=QWidget()
window.setFixedSize(500,500)

layout=QVBoxLayout()

label_img=QLabel()
label_img.setFixedSize(300, 300)
label_img.setAlignment(Qt.AlignCenter)
image = QFileDialog.getOpenFileName(None,'Select file','D:\_Download', "Image files(*.png *.jpg *.jpeg *.gif)")
imagePath = image[0]
pixmap = QPixmap(imagePath)
pixmap.scaledToHeight(label_img.height(), Qt.SmoothTransformation)
label_img.setPixmap(pixmap)
layout.addWidget(label_img)

window.setLayout(layout)
window.show()
app.setStyle('Fusion')
app.exec_()

我做错了什么?

【问题讨论】:

    标签: python pyqt pyqt5 qlabel


    【解决方案1】:

    QPixmap 以 QLabel 为中心,但问题是 QLabel 没有相对于窗口居中。因此,您应该将小部件居中更改为:

    layout.addWidget(label_img, <b>alignment=Qt.AlignCenter</b>)

    【讨论】:

    • 谢谢@eyllanesc,这行得通。但是在完整的代码中(这只是相关的片段),我还有两个小部件,带有带有代码的文本标签:label_top=QLabel('PLEASE WAIT') label_top.setAlignment(Qt.AlignCenter) label_top.setStyleSheet("font: 20pt Bahnschrift; background-color: #ffd167; color: black") layout.addWidget(label_top) 尽管没有与窗口中心对齐,但显示的文本居中。为什么带有文本的标签与带有图像的标签的行为不同?
    • @cyanidem 大神,我只解决你提供的代码显示的问题,如果你有其他隐藏代码很难(通常不可能)帮助你。
    • @cyanidem 正如我所指出的,如果您将代码放入 cmets(代码看起来很糟糕),则无法为您提供帮助,如果您需要帮助创建 一个新帖子,必要的信息。我建议您阅读How to AskHow to Answer 并通过tour
    • 是的,我正在尝试。不小心输入了不完整的评论,抱歉。
    • 我尝试发布新问题,但“您每 90 分钟只能发布一次。”所以它必须等待一段时间。无论如何,谢谢@eyllanesc。
    猜你喜欢
    • 2021-08-12
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多