🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Q&A

解決済

2回答

2653閲覧

PyQt5で、画像が表示されません。

kazuoiwata

総合スコア8

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

0グッド

0クリップ

投稿2019/10/06 04:55

編集2019/10/06 05:08

前提・実現したいこと

pythonのPyQt5を使い、画像を表示するプログラムを作りたいのですが、
エラーは出ないのに、うまく表示されません。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

from PyQt5.QtWidgets import QApplication,QWidget from PyQt5.QtWidgets import QLabel from PyQt5 import QtGui class App(QWidget): def __init__(self): super().__init__() self.title = 'welcome' self.left = 500 self.top = 250 self.width = 500 self.height = 300 self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left,self.top,self.width,self.height) label_welcome = QLabel(self) label_welcome.setText('welcome') label_welcome.setFont(QtGui.QFont("Times",24,QtGui.QFont.Bold)) label_welcome.move(10,10) label_image = QLabel(self) image = QtGui.QPixmap('image.jpeg') label_image.setPixmap(image) label_image.move(10,10) self.show() app = QApplication([]) win = App() app.exec_()

イメージ説明
welcomeと表示されるだけです

試したこと

読み込む画像ファイルをjpegからpngに変えたりしましたが、うまくできませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

python

1 image = QtGui.QPixmap('image.jpeg')

ファイルがないと、エラーも出力せずに何も表示されない状態になります。
上記のコードだと、「カレントディレクトリの『image.jpeg』」を読みにいきますが、ちゃんとファイルが存在するか確認してください。
(もしかして、「jpeg」と「jpg」を間違えているとか。もしくは、「カレントディレクトリって何?」という状態であれば、重要な事なのでググってしっかりと調べてください)

ちなみに、BeatStarさんの「サポートされている画像フォーマット」は、以下のように調べられます。

python

1print(QtGui.QImageReader.supportedImageFormats())

pipでインストールしたならば一通りのQtライブラリが入っているはずなので大丈夫だと思います(少なくとも自分の環境は問題なかった)が、全ての環境を知っているわけではないので、一応確認したほうが良いでしょう。


一応、自分で揚げ足取り。

The file name can either refer to an actual file on disk or to one of the application's embedded resources. See the Resource System overview for details on how to embed images and other resource files in the application's executable.

QPixmapのコンストラクタには、ファイル名だけでなく埋め込みリソース名も指定できるっぽい事が書かれてますね。
自分は詳しくないので、埋め込みリソースについてはよく知りませんし、今回と関係あるかどうか知りませんが、いずれにせよ「image.jpeg」がどこにあるのか、ハッキリとさせたほうがいいですね。

投稿2019/10/08 00:41

編集2019/10/08 00:58
katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

あ、私も引っかかったやつだわ。

えーっと、確か、別のDLLとかが必要だったはずです。

どこだったかな... あぁ、そうそう。

これ( question: Qtで画像表示 )ですね。

一応私の場合はC++ですが、もしかしたら同じ原因かもしれません。

少なくとも Windows上で、C++としてやる場合は デフォルトでは bmpファイルのみで、ほかの拡張子は追加DLLをセットしないといけないっぽいです。

Pythonはどうかわかりませんが。


[追記0]

あと、Qt関係はバージョンやOSによってまったく別物になることもあるようです。
なのでQtのバージョンやOSバージョンも載せておいたほうが無難です。

また、言語名であるPythonもタグとして設定しておいたほうが回答が付きやすいと思いますよ。

投稿2019/10/07 03:48

編集2019/10/07 03:50
BeatStar

総合スコア4962

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuoiwata

2019/10/08 10:59

ありがとうございました! .bmpにしたらうまくできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問