質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

901閲覧

同ディレクトリにある画像ファイル名を変数に代入してそこから画像を読み込む方法が知りたい

yuumura

総合スコア3

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/02 13:07

前提・実現したいこと

python guiでファイルダイアログ操作からの画像表示

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

guiのボタンを押す ↓ openFile関数で同ディレクトリ内のファイルを選ぶ    ↓ 同ディレクトリなのでパスをファイル名だけにして###########部分に入れる    ↓ 普通にファイル名を入れたように動作しない

該当のソースコード

python

1import os 2import sys 3from PyQt5.QtWidgets import * 4from PyQt5.QtCore import * 5from PyQt5.QtGui import QImage, QPalette, QPixmap 6import datetime 7from PIL import Image 8import cv2 9import tkinter.filedialog as fd 10 11class MyWindow(QMainWindow): 12 13 def __init__(self): 14 """ インスタンスが生成されたときに呼び出されるメソッド """ 15 super(MyWindow, self).__init__() 16 self.initUI() 17 18 19 #ファイルダイアログ表示 20 def openFile(self): 21 (fileName, selectedFilter) = QFileDialog.getOpenFileName(self, 'Open file', os.path.expanduser('~') + '/Desktop') 22 if fileName != "": 23 QMessageBox.information(self, "File", fileName) 24 return fileName 25 26 def gazou(self,im1,im2): 27 #GUI設定部分 28 self.resize(250, 150) # 250x150ピクセルにリサイズ 29 self.setWindowTitle('MyWindow') # タイトルを設定 30 vbox = QVBoxLayout() 31 hbox = QHBoxLayout() 32 hbox2 = QHBoxLayout() 33 hbox3 = QHBoxLayout() 34 self.button=QPushButton('ボタン') 35 self.button.clicked.connect(self.on_click1) 36 imageLabel = QLabel() 37 imageLabel2 = QLabel() 38 # ラベルに読み込んだ画像を反映 39 imageLabel.setPixmap(QPixmap.fromImage(QImage(im1))) 40 imageLabel2.setPixmap(QPixmap.fromImage(QImage(im2))) 41 imageLabel.scaleFactor = 0.5 42 imageLabel2.scaleFactor = 0.5 43 hbox.addWidget(imageLabel) 44 hbox.addWidget(imageLabel2) 45 hbox2.addWidget(self.button) 46 vbox.addLayout(hbox) 47 vbox.addLayout(hbox2) 48 container = QWidget() 49 container.setLayout(vbox) 50 self.setCentralWidget(container) 51 self.show() 52 53 54 def on_click1(self): 55 #実装できない部分 56 a="'" 57 b=str(os.path.basename(self.openFile())) 58 c="'" 59 60 im1=a+b+c#im1の中身は'lena.jpg' 61 62 ########################## 63# self.gazou('lena.jpg','lena.jpg') 64 self.gazou('lena.jpg',im1) 65 #これだとエラーが出てしまう 66 67 def initUI(self): 68 """ UIの初期化 """ 69 70 self.gazou('lena.jpg','lena.jpg') 71 72def main(): 73 app = QApplication(sys.argv) 74 w = MyWindow() 75 app.exec_() 76 77if __name__ == '__main__': 78 main() 79 80

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

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

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

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

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

y_waiwai

2020/12/02 13:12

提示のコードではどういう動作になるんでしょうか
yuumura

2020/12/02 13:20

ボタンが押されるとim1を入れた方の画像が表示されなくなります。 コメントアウトされているlena.jpgの方だと同じ画像が表示されたままになります。
guest

回答1

0

自己解決

自分がゴミだったせいでした。
b=lena.jpg
このbを代入すればできました。
無駄に足算をして
im1='lena.jpg'にする必要はありませんでした。
ゴミみたいな質問してしまって申し訳ありませんでした。

投稿2020/12/03 01:43

yuumura

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問