2

デフォルトでプレースホルダー画像が含まれているqtラベルがあります。

self.label.setPixmap(QtGui.QPixmap(_fromUtf8("place_holder.jpg")))

ラベルに含まれる画像を更新する機能があります:

def selectFile(self):
image = QtGui.QFileDialog.getOpenFileName(None, 'Select Reference Image', '', '*.jpg')
self.label.setPixmap(QtGui.QPixmap(_fromUtf8(image)))

これは正常に機能します(画像が更新されます)が、ラベルの更新に使用される画像のサイズがプレースホルダー画像と異なる場合にも変形します。

これを修正する方法はありますか?画像を調整し、ラベルのサイズを固定し続けるという意味ですか?

4

2 に答える 2

2

インポートするたびに画像を拡大縮小します。ラベルのサイズをすでに考えている場合は、プレースホルダーを拡大縮小することもできます。試してみてください(c ++)

//initial setup
QPixmap pixPlaceHolder = QPixmap(_fromUtf8("place_holder.jpg");
QSize desiredsize = pixPlaceHolder.size(); // or any of the size you want

ファイルを選択するたびに:

 label.setPixmap(QPixmap(_fromUtf8(image).scaled(desiredsize));
于 2012-10-29T10:59:35.237 に答える
2

scaledContents プロパティの設定を試すことができます:

self.label.setScaledContents(True)
self.label.setPixmap(QPixmap("your_image.jpeg"))

それは私にとってはうまくいきます。

これにより、使用可能なすべてのスペースを埋めるために画像が拡大縮小されることに注意してください。これは、ラベル サイズと画像の縦横比が同じでない限り、画像の縦横比が保持されないことを意味します。ここQPixmap.scaleの画像でわかるように、この方法を使用しても同じ問題が発生します。

于 2012-10-29T13:10:38.377 に答える