【问题标题】:Setting Position of Image in main Window, QPixmap设置图像在主窗口中的位置,QPixmap
【发布时间】:2020-07-24 18:46:58
【问题描述】:

我使用 QPixmap 加载图像并设置位置。 图像加载到我的主窗口中,但图像的位置没有设置我使用setPos,但没有发生任何事情。

from PyQt5 import QtGui
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QApplication, QDialog, QVBoxLayout, QLabel
from PyQt5 import QtCore

import sys
from PyQt5.QtGui import QPixmap
class Window(QDialog):
    def __init__(self):
        super().__init__()
        self.title = "PyQt5 Adding Image To Label"
        self.top = 200
        self.left = 500
        self.width = 400
        self.height = 500
        self.InitWindow()

    def InitWindow(self):
        self.setWindowIcon(QtGui.QIcon("icon.png"))
        self.setWindowTitle(self.title)
        self.setStyleSheet("background-color:#202020")
        self.setGeometry(self.left, self.top, self.width, self.height)
        vbox = QVBoxLayout()
        labelImage = QLabel(self)

        pixmap = QPixmap("mario.png")
        pixmap=pixmap.scaled(50, 50, QtCore.Qt.KeepAspectRatio)
        #pixmap.setPos(100,60)

        labelImage.setPixmap(pixmap)
        vbox.addWidget(labelImage)
        self.setLayout(vbox)

        self.show()



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

【问题讨论】:

    标签: python pyqt5 qpixmap


    【解决方案1】:

    以下概念一定要清楚:

    • QPixmap 不是视觉元素,而是构成图像的位的容器,因此它们没有任何setPos() 方法(推荐:check the Qt docs)。

    • 在代码中显示 QPixmap 内容的可视元素是 QLabel,因此您必须将位置设置为该小部件,但在这种情况下,OP 使用旨在管理几何图形(位置和大小)的布局,因此如果要手动设置,则不应使用它。

    def InitWindow(self):
        self.setWindowIcon(QtGui.QIcon("icon.png"))
        self.setWindowTitle(self.title)
        self.setStyleSheet("background-color:#202020")
        self.setGeometry(self.left, self.top, self.width, self.height)
    
        labelImage = QLabel(self)
        pixmap = QPixmap("mario.png")
        pixmap = pixmap.scaled(50, 50, QtCore.Qt.KeepAspectRatio)
        labelImage.setPixmap(pixmap)
        labelImage.move(100, 100)
    
        self.show()

    【讨论】:

    • 这很有帮助,但是一个move 很多Qpixmap,例如不是QLabel,而是QGraphicsScene?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    相关资源
    最近更新 更多