2017-03-06 250 views
0

我正在尝试生成一个可视化器,其中每次按下按钮时窗口中的图像都会更改。图像必须位于按钮所在的同一个窗口中,并且必须替换之前的图像。Python 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(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

如果你想你不应该创建一个新的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() 
+0

谢谢,它的工作 – aspire57