私は自分で画像を作成したいQMainWindow
ので、それをクリックすると、次のようqpushbutton
に信号が変換されます。
self.quit=QtGui.QPushButton(self)
self.quit.setIcon(QtGui.QIcon('images/9.bmp'))
しかし、問題は、ウィンドウのqpushbutton
サイズを変更してもサイズが変更されたが、彼のアイコンではなく、
Qt はイメージを拡大しません。この方法が最適です。押しボタンを保持するレイアウトにストレッチャーを追加して、押しボタンを一定のサイズに保つことをお勧めします。とにかく、サイズ変更可能なプッシュボタンは視覚的にあまり魅力的ではなく、GUI では一般的ではありません。
クリック可能な画像を作成するために、私が考えることができる最も単純なコードは次のとおりです。
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class ImageLabel(QLabel):
def __init__(self, image, parent=None):
super(ImageLabel, self).__init__(parent)
self.setPixmap(image)
def mousePressEvent(self, event):
print 'I was pressed'
class AppForm(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.create_main_frame()
def create_main_frame(self):
name_label = QLabel("Here's a clickable image:")
img_label = ImageLabel(QPixmap('image.png'))
vbox = QVBoxLayout()
vbox.addWidget(name_label)
vbox.addWidget(img_label)
main_frame = QWidget()
main_frame.setLayout(vbox)
self.setCentralWidget(main_frame)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = AppForm()
form.show()
app.exec_()
image.png
画像ファイル名 (QPixmap で受け入れ可能な形式) に置き換えるだけで、設定は完了です。