私は、APIを使ってTUMBLRに写真をアップロードできるプログラムを書いています。私はアップロード作業をしています(おかげさまで)。QPixmapアスペクト比を維持する
私は、イメージ名を表示するGUIの側に 'queueBox'を配置し、それらはQListWidgetに格納されています。
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.queueBox.itemClicked.connect(self.displayPhoto)
を、私はこの方法を持っている:私は私のメインクラスのコンストラクタでこれを入れている
def displayPhoto(self, item):
tempName = (item.text())
print tempName
self.myLabel.setPixmap(QtGui.QPixmap(_fromUtf8(directory + '\\' + tempName)))
## self.myLabel.pixmap(QPixmap.scaled(aspectRatioMode = Qt.IgnoreAspectRatio))
##^^^What do I do with this? How do I set it to maintain aspect ratio?
## Currently it says ''NameError: global name 'Qt' is not defined''
このsucessfullyはQLabelでmylabelというの上に画像を描画し、しかし、それは非常にありますスケール、私は私のui_mainWindowクラスで
self.myLabel.setScaledContents(True)
を持っている、と私はFalseにそれをオンにした場合、それはスケーリングを修正したが、画像がQLabelよりもはるかに大きいので、それが唯一の画像の小さな部分を示しています。私が望むのは、アスペクト比を維持することができるため、スケーリングして恐ろしいように見えません。
私はこれを見つけました:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qpixmap.html それを使用する方法は述べていますが、私のコメントで上記のコードに示すように動作させることはできません。誰もこれを使う方法を知っていますか?そうであれば、私は例を提供することができます、私は検索しようとしましたが、私が得た結果のほとんどは、PythonではなくC++での実例です。
ありがとうございます!
大変ありがとうございます。私はちょっと修正しました: 'self.myLabel.setPixmap(QtGui.QPixmap(_fromUtf8(directory + '\\' + tempName))スケーリング(self.myLabel.size()、QtCore.Qt.KeepAspectRatio、QtCore.Qt .SmoothTransformation)) '画像にラベルを合わせるときに品質を向上させるので、「smoothTransformation」を追加しました。しかし、画像が作成されると、ラベルの左側に配置されます。つまり、正方形の場合、ラベルの中央に表示されません。左側に表示されます。ドキュメントを検索して見つかりませんでした私が何をした後に何をするのか? – Anteara
ああ、私は上記のことであまり有益ではなかった。私がしたいのは、ラベルの中央に正方形の画像を置くことです。これは、左とは反対に、残りのウィンドウに比例して見えます。私はあなたに私が意味するものの例を見せます:ご覧のとおり、正方形の画像は中央に比べて左に配置されていますが、ワイドスクリーンの画像は問題ありません。 – Anteara
@Anteara:それは 'QLabel'までです。 Designer(デザイナでUIを設計した場合)または 'self.myLabel.setAlignment(QtCore.Qt.AlignCenter)'を呼び出すことによって、その配置をDesignerに設定するだけです。 – Avaris