PyQt4中按钮图标的调整大小
我想在我的 QMainWindow
里放一张图片,这样当你点击这张图片的时候,就会像点击 qpushbutton
一样发出一个信号。我用的是这个:
self.quit=QtGui.QPushButton(self)
self.quit.setIcon(QtGui.QIcon('images/9.bmp'))
但是问题是,当我调整窗口大小的时候,qpushbutton
会跟着变大变小,但它的图标却不会。
1 个回答
1
Qt不会自动拉伸你的图片,这样做其实更好。我建议通过在放置按钮的布局中添加拉伸器,来保持按钮的大小不变。可调整大小的按钮在视觉上并不好看,而且在图形用户界面中也不常见。
如果你想做一个可以点击的图片,这里有我想到的最简单的代码:
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支持的格式),就可以了。