first_row = QtGui.QHBoxLayout()
setings_search = QtGui.QVBoxLayout()
search_label = QtGui.QLabel()
search_pixmap = QtGui.QPixmap()
search_pixmap.load('search.png')
#search_pixmap.scaledToWidth(130)
#search_pixmap.scaledToHeight(130)
search_label.setPixmap(search_pixmap)
setings_search.addWidget(search_label)
first_row.addLayout(setings_search)
当我同时使用scaled
和scaledToWidth/Heigth
方法时,图片不会调整大小。
my window
在图片中,我已经展示了我已经拥有的和我想拥有的东西。
当然我可以通过Photoshop改变大小,但我想知道如何以编程方式进行。
答案 0 :(得分:5)
正如ekhumoro在评论中所说,只需使用QPixmap中的scaled
方法之一。
from PyQt4 import QtGui
app = QtGui.QApplication([])
label = QtGui.QLabel()
pixmap = QtGui.QPixmap()
pixmap.load('test.png')
pixmap = pixmap.scaledToWidth(20)
label.setPixmap(pixmap)
label.show()
app.exec_()
给出了正确的尺寸。
答案 1 :(得分:1)
尝试为paintEvent
定义QWidget
。但是,我只知道如何在绝对位置(pixmap
,posX
)上绘制poxY
,不确定相对位置(即在QVBoxLayout
中)。< / p>
def paintEvent(self, event):
qp = QtGui.QPainter()
search_pixmap = QtGui.QPixmap('search.png')
qp.drawPixmap(posX, posY, width, height, pixmap.scaled(width, height, transformMode=QtCore.Qt.SmoothTransformation))
其中width
和height
是缩放pixmap
的尺寸。