Python pyqt4中按钮图标的大小调整

Python pyqt4中按钮图标的大小调整,python,pyqt4,Python,Pyqt4,我想在我的QMainWindow中制作图像,因此当你点击它时,你会看到一个像qpushbutton这样的信号转换,我使用这个: self.quit=QtGui.QPushButton(self) self.quit.setIcon(QtGui.QIcon('images/9.bmp')) 但问题是,当我调整窗口的大小时,qpushbutton的大小也被调整了,而不是他的图标,Qt不会为你拉伸你的图像,最好这样。我建议通过在布局中添加担架来保持按钮的大小不变。可调整大小的按钮在视觉上不是很吸引人

我想在我的
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可接受的格式),就可以了。

谢谢eliben先生;但我不想用fonction connect()包装一个可点击的图像,你可以向一个插槽发送信号(这个插槽改变图像)thx