0

私は自分で画像を作成したいQMainWindowので、それをクリックすると、次のようqpushbuttonに信号が変換されます。

self.quit=QtGui.QPushButton(self)
self.quit.setIcon(QtGui.QIcon('images/9.bmp'))

しかし、問題は、ウィンドウのqpushbuttonサイズを変更してもサイズが変更されたが、彼のアイコンではなく、

4

1 に答える 1

1

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 で受け入れ可能な形式) に置き換えるだけで、設定は完了です。

于 2009-12-16T18:46:03.283 に答える