在QPushButton上放置图片

10 投票
3 回答
51895 浏览
提问于 2025-04-18 06:25

我刚开始学习PyQt,手上有一张图片叫做 add.gif。我想把这张图片放到一个 QPushButton 按钮上,但我不知道该怎么做。

3 个回答

2

假设pyqt支持gif图片,这段代码应该可以正常工作。

icon  = QtGui.QPixmap('add.gif')
button = QtGui.QPushButton()
button.setIcon(icon)

QPushButton

按钮可以显示一段文字标签,另外还可以选择性地显示一个小图标。你可以在创建按钮的时候设置这些内容,之后也可以通过调用setText()和setIcon()来更改它们。如果按钮被禁用,那么文字和图标的样子会根据界面的风格进行调整,让按钮看起来像是“不可用”的状态。

4

这是来自@NorthCat的同一个例子,不过是针对PyQt5的:

from PyQt5 import QtGui, QtCore
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QVBoxLayout


class Window(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.button = QPushButton('', self)
        self.button.clicked.connect(self.handleButton)
        self.button.setIcon(QtGui.QIcon('myImage.jpg'))
        self.button.setIconSize(QtCore.QSize(200,200))
        layout = QVBoxLayout(self)
        layout.addWidget(self.button)

    def handleButton(self):
        pass


if __name__ == '__main__':

    import sys
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
20

示例:

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.button = QtGui.QPushButton('', self)
        self.button.clicked.connect(self.handleButton)
        self.button.setIcon(QtGui.QIcon('myImage.jpg'))
        self.button.setIconSize(QtCore.QSize(24,24))
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.button)

    def handleButton(self):
        pass


if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

撰写回答