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

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

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

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

Q&A

解決済

1回答

989閲覧

【pyqy5】画像の表示方法を工夫したい

uc200

総合スコア32

Python 3.x

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

0グッド

0クリップ

投稿2017/10/26 14:11

python3を使っています。pyqt5で下のようなウィジットを作りたいです
説明

黄色いボタンを押すと前後の画像が真ん中に来るようにしたいです。しかし、どうすればいいのかよく分かりません。分かりづらかったらすみません。

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

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

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

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

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

guest

回答1

0

自己解決

前後画像を表示するのは面倒そうなのでやめました

python3.5

1import sys 2from PyQt5.QtWidgets import * 3from PyQt5.QtGui import * 4from PyQt5.QtCore import * 5from PyQt5 import QtGui,QtCore, QtWidgets 6import os.path 7 8 9#myLabel = None 10 11class Button(QPushButton): 12 13 def __init__(self, title, parent): 14 super().__init__(title, parent) 15 self.setAcceptDrops(True) 16 17 def dragEnterEvent(self, e): 18 mimeData = e.mimeData() 19 20 21 # パスの有無で判定 22 if mimeData.hasUrls(): 23 e.accept() 24 else: 25 e.ignore() 26 27 def dropEvent(self, e): 28 # ファイルから画像読込 29 urls = e.mimeData().urls() 30 urllength=len(urls) 31 global imagelist 32 imagelist=[] 33 """ 34 for url in urls: 35 path = url.toLocalFile() 36 imagelist.append(path) 37 #print(imagelist) 38 """ 39 for file in range(0,urllength): 40 imagepath=urls[file].toLocalFile() 41 root, ext=os.path.splitext(imagepath) 42 if ext==".png" or ext==".jpg" or ext==".bmp" or ext==".jpeg": 43 imagelist.append(urls[file].toLocalFile()) 44 else: 45 pass 46 47 self.imagenumber=0 48 self.listlength=len(imagelist) 49 50 maisu=str(self.imagenumber+1)+"/"+str(self.listlength) 51 maisu="<h1><i>"+maisu+"<h1><i>" 52 imagenum.setText(maisu) 53 imagenum.adjustSize() 54 55 text1=imagelist[self.imagenumber] 56 #text1=os.path.splitext(text1) 57 text1=text1.rsplit("/",1)[1].split('?')[0] 58 text1="<h1><i>"+text1+"<h1><i>" 59 imagename.setText(text1) 60 imagename.adjustSize() 61 62 63 myLabel.setIcon(QIcon(imagelist[0])) 64 65 66 67class Example(QWidget): 68 69 def __init__(self): 70 super().__init__() 71 self.initUI() 72 73 def initUI(self): 74 self.list1=["みちゆき.jpg"] 75 global imagelist 76 imagelist=self.list1 77 78 self.listlength=len(imagelist) 79 self.imagenumber=0 80 iconimage=self.list1[self.imagenumber] 81 self.button = Button("",self) 82 self.button.resize(400,300) 83 self.button.setIcon(QIcon(iconimage)) 84 self.button.setIconSize(QSize(400,300)) 85 self.button.move(50, 50) 86 87 self.btnright=QPushButton(self) 88 self.btnright.resize(40,40) 89 self.btnright.setIcon(self.style().standardIcon(getattr(QStyle,"SP_ArrowRight"))) 90 self.btnright.setToolTip('次の画像') 91 self.btnright.setIconSize(QSize(40, 40)) 92 self.btnright.move(460, 200) 93 self.btnright.clicked.connect(self.stepnext) 94 95 self.btnleft=QPushButton(self) 96 self.btnleft.resize(40,40) 97 self.btnleft.setIcon(self.style().standardIcon(getattr(QStyle,"SP_ArrowLeft"))) 98 self.btnleft.setToolTip('前の画像') 99 self.btnleft.setIconSize(QSize(40, 40)) 100 self.btnleft.move(5, 200) 101 self.btnleft.clicked.connect(self.stepprev) 102 103 104 global myLabel 105 myLabel = self.button 106 107 text1=self.list1[self.imagenumber] 108 text1="<h1><i>"+text1+"<h1><i>" 109 self.text1=QLabel(text1, self) 110 self.text1.move(200,20) 111 global imagename 112 imagename = self.text1 113 #print(self.text1) 114 115 #print(self.list[self.imagenumber]) 116 117 maisu=str(1)+"/"+str(self.listlength) 118 maisu="<h1><i>"+maisu+"<h1><i>" 119 self.text2=QLabel(maisu, self) 120 self.text2.move(400,20) 121 global imagenum 122 imagenum = self.text2 123 124 iconSize = QSize(36, 36) 125 self.btn = QPushButton(self) 126 self.btn.move(50,8) 127 self.btn.setIcon(self.style().standardIcon(QStyle.SP_DialogOpenButton)) 128 self.btn.setIconSize(iconSize) 129 self.btn.setToolTip("画像追加") 130 self.btn.clicked.connect(self.handleopen) 131 132 self.clearbtn=QPushButton(self) 133 self.clearbtn.move(100,8) 134 self.clearbtn.setIcon(self.style().standardIcon(QStyle.SP_DialogDiscardButton)) 135 self.clearbtn.setIconSize(iconSize) 136 self.clearbtn.setToolTip("画像消去") 137 self.clearbtn.clicked.connect(self.clearfile) 138 139 140 141 #global imnum 142 #imnum=self.imagenumber 143 144 self.setWindowTitle('Simple drag & drop') 145 self.setGeometry(300, 300, 500, 500) 146 147 148 def stepnext(self): 149 #print(imagelist) 150 #print(self.imagenumber) 151 self.listlength=len(imagelist) 152 if self.imagenumber<self.listlength-1: 153 self.imagenumber=self.imagenumber+1 154 myLabel.setIcon(QIcon(imagelist[self.imagenumber])) 155 156 maisu=str(self.imagenumber+1)+"/"+str(self.listlength) 157 maisu="<h1><i>"+maisu+"<h1><i>" 158 imagenum.setText(maisu) 159 imagenum.adjustSize() 160 161 text1=imagelist[self.imagenumber] 162 text1=text1.rsplit("/",1)[1].split('?')[0] 163 text1="<h1><i>"+text1+"<h1><i>" 164 imagename.setText(text1) 165 imagename.adjustSize() 166 167 else: 168 pass 169 170 def stepprev(self): 171 self.listlength=len(imagelist) 172 if self.imagenumber>0: 173 self.imagenumber=self.imagenumber-1 174 myLabel.setIcon(QIcon(imagelist[self.imagenumber])) 175 176 maisu=str(self.imagenumber+1)+"/"+str(self.listlength) 177 maisu="<h1><i>"+maisu+"<h1><i>" 178 imagenum.setText(maisu) 179 imagenum.adjustSize() 180 181 text1=imagelist[self.imagenumber] 182 text1=text1.rsplit("/",1)[1].split('?')[0] 183 text1="<h1><i>"+text1+"<h1><i>" 184 imagename.setText(text1) 185 imagename.adjustSize() 186 187 else: 188 pass 189 190 def handleopen(self): 191 filename, ok = QtWidgets.QFileDialog.getOpenFileName( 192 self, filter='Image Files (*.png *.jpg *.bmp)',) 193 if filename: 194 #filepath=QFileInfo(filename).path() 195 print(filename) 196 print(imagelist) 197 if "みちゆき.jpg" in imagelist: 198 imagelist.remove("みちゆき.jpg") 199 else: 200 pass 201 imagelist.append(filename) 202 print(imagelist) 203 myLabel.setIcon(QIcon(imagelist[self.imagenumber])) 204 205 self.listlength=len(imagelist) 206 maisu=str(self.imagenumber+1)+"/"+str(self.listlength) 207 maisu="<h1><i>"+maisu+"<h1><i>" 208 imagenum.setText(maisu) 209 imagenum.adjustSize() 210 211 text1=imagelist[self.imagenumber] 212 text1=text1.rsplit("/",1)[1].split('?')[0] 213 text1="<h1><i>"+text1+"<h1><i>" 214 imagename.setText(text1) 215 imagename.adjustSize() 216 217 #print(filepath) 218 #imagelist.remove("みちゆき.jpg") 219 #imagelist.append(filename) 220 221 def clearfile(self): 222 #print("a") 223 global imagelist 224 imagelist=["みちゆき.jpg"] 225 self.imagenumber=0 226 myLabel.setIcon(QIcon(imagelist[self.imagenumber])) 227 228 text="<h1><i>"+"みちゆき.jpg"+"<h1><i>" 229 imagename.setText(text) 230 imagename.adjustSize() 231 232 maisu="<h1><i>"+"1/1"+"<h1><i>" 233 imagenum.setText(maisu) 234 imagenum.adjustSize() 235 236 237if __name__ == '__main__': 238 239 app = QApplication(sys.argv) 240 ex = Example() 241 ex.show() 242 app.exec_() 243

投稿2017/12/23 14:12

uc200

総合スコア32

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問