调整大小

调整大小

问题描述:

我想使图像在我QMainWindow所以当你点击它,你有一个信号转换一样qpushbutton我用这个:调整大小

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

但问题是whene我调整窗口的大小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的可接受的格式)和你设置。

+0

谢谢eliben先生;但它不是我想要创建一个可点击的图像与功能连接(),你可以发送信号到一个插槽(此插槽更改图像) thx – brou1986 2009-12-16 20:47:03