Python PyQt4更改图像按下按钮

时间:2017-03-06 08:36:30

标签: python qt pyqt pyqt4

我正在尝试生成一个可视化工具,每次按下按钮时,窗口中的图像都会发生变化。图像必须位于按钮所在的同一窗口中,并且必须替换之前的图像。

因此,我能够显示按钮和第一张图像。但是我无法将点击按钮与图像更新过程连接起来。 到目前为止,这是我的代码:

author__ = 'lpp'
#!/usr/bin/python

import os,sys
from PyQt4 import QtGui

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        QtGui.QToolTip.setFont(QtGui.QFont('Test', 10))
        self.setToolTip('This is a <b>QWidget</b> widget')

        # Show  image
        pic = QtGui.QLabel(self)
        pic.setGeometry(10, 10, 800, 800)
        pic.setPixmap(QtGui.QPixmap( "/home/lpp/Desktop/Image1.png"))

        # Show button 
        btn = QtGui.QPushButton('Button', self)
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.resize(btn.sizeHint())
        btn.clicked.connect(self.fun)
        btn.move(50, 50)


        self.setGeometry(300, 300, 2000, 1500)
        self.setWindowTitle('Tooltips')
        self.show()

    # Connect button to image updating 
    def fun(self):
       #print("Test!!!")
        pic = QtGui.QLabel(self)
        pic.setGeometry(100, 10, 800, 800)
        pic.setPixmap(QtGui.QPixmap( "/home/lpp/Desktop/image2.png"))


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

除了“def fun”之外的所有作品。 我也试过这些功能,但它不起作用:

    def fun(self):
        pic = QtGui.QLabel(self)
        pic.setGeometry(100, 10, 800, 800)
        pic.setPixmap(QtGui.QPixmap( "/home/lpp/Desktop/image2.png"))
        return (pic)

    def fun(self):
       #print("Test!!!")
        pic = QtGui.QLabel(self)
        pic.setGeometry(100, 10, 800, 800)
        pic.setPixmap(QtGui.QPixmap( "/home/lpp/Desktop/image2.png"))
        return self.show()

1 个答案:

答案 0 :(得分:1)

如果您想要上一张图片,则不应创建新的QLabel,只需更新QPixmap。

import sys
from PyQt4 import QtGui

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        QtGui.QToolTip.setFont(QtGui.QFont('Test', 10))
        self.setToolTip('This is a <b>QWidget</b> widget')

        # Show  image
        self.pic = QtGui.QLabel(self)
        self.pic.setGeometry(10, 10, 800, 800)
        self.pic.setPixmap(QtGui.QPixmap("/home/lpp/Desktop/image1.png"))

        # Show button 
        btn = QtGui.QPushButton('Button', self)
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.resize(btn.sizeHint())
        btn.clicked.connect(self.fun)
        btn.move(50, 50)


        self.setGeometry(300, 300, 2000, 1500)
        self.setWindowTitle('Tooltips')
        self.show()

    # Connect button to image updating 
    def fun(self):
        self.pic.setPixmap(QtGui.QPixmap( "/home/lpp/Desktop/image2.png"))

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()