2009-12-16 199 views
0

我想使圖像在我QMainWindow所以當你點擊它,你有一個信號轉換一樣qpushbutton我用這個:調整大小

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

但問題是whene我調整窗口的大小qpushbutton調整大小,但不是他的圖標,

回答

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的可接受的格式)和你設置。

+0

謝謝eliben先生;但它不是我想要創建一個可點擊的圖像與功能連接(),你可以發送信號到一個插槽(此插槽更改圖像) thx – brou1986 2009-12-16 20:47:03