0
我想使圖像在我QMainWindow
所以當你點擊它,你有一個信號轉換一樣qpushbutton
我用這個:調整大小
self.quit=QtGui.QPushButton(self)
self.quit.setIcon(QtGui.QIcon('images/9.bmp'))
但問題是whene我調整窗口的大小qpushbutton
調整大小,但不是他的圖標,
我想使圖像在我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的可接受的格式)和你設置。
謝謝eliben先生;但它不是我想要創建一個可點擊的圖像與功能連接(),你可以發送信號到一個插槽(此插槽更改圖像) thx – brou1986 2009-12-16 20:47:03