2016-09-14 52 views
0

我想用PyQt GUI创建一个简单的程序。为此,我使用了Qt Designer,并使用名为OpenImage的按钮创建了一个窗口。此外,我有一个名为rony.py的文件,它具有函数show。所以我希望当用户点击按钮时,图像就会出现。如何将QPushButton连接到函数

这是我的代码:

from PyQt4 import QtCore, QtGui 
import rony 

try: 
    _fromUtf8 = QtCore.QString.fromUtf8 
except AttributeError: 
    def _fromUtf8(s): 
     return s 

try: 
    _encoding = QtGui.QApplication.UnicodeUTF8 
    def _translate(context, text, disambig): 
     return QtGui.QApplication.translate(context, text, disambig, _encoding) 
except AttributeError: 
    def _translate(context, text, disambig): 
     return QtGui.QApplication.translate(context, text, disambig) 

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     MainWindow.setObjectName(_fromUtf8("MainWindow")) 
     MainWindow.resize(800, 600) 
     self.centralwidget = QtGui.QWidget(MainWindow) 
     self.centralwidget.setObjectName(_fromUtf8("centralwidget")) 
     self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget) 
     self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) 
     self.OpenImage = QtGui.QPushButton(self.centralwidget) 
     self.OpenImage.setObjectName(_fromUtf8("OpenImage")) 
     self.horizontalLayout.addWidget(self.OpenImage) 
     MainWindow.setCentralWidget(self.centralwidget) 
     self.menubar = QtGui.QMenuBar(MainWindow) 
     self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21)) 
     self.menubar.setObjectName(_fromUtf8("menubar")) 
     MainWindow.setMenuBar(self.menubar) 
     self.statusbar = QtGui.QStatusBar(MainWindow) 
     self.statusbar.setObjectName(_fromUtf8("statusbar")) 
     MainWindow.setStatusBar(self.statusbar) 

     self.retranslateUi(MainWindow) 
     QtCore.QMetaObject.connectSlotsByName(MainWindow) 

    def retranslateUi(self, MainWindow): 
     MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) 
     self.OpenImage.setText(_translate("MainWindow", "PushButton", None)) 


OpenImage.connect(show()) # Why this line don't work 


if __name__ == "__main__": 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    MainWindow = QtGui.QMainWindow() 
    ui = Ui_MainWindow() 
    ui.setupUi(MainWindow) 
    MainWindow.show() 
    sys.exit(app.exec_()) 

rony.py

from PIL import Image 
img = Image.open("pipe.png") 

def show(): 
    img.show() 

回答

0

你必须调用它从一个函数时,引用您的脚本的名称。它作为一个库运行:

OpenImage.connect(rony.show()) 
相关问题