2016-09-14 5 views
0

Ich möchte eine Verbindung ein einfaches Programm mit einer PyQt GUI erstellen. Dazu verwendete ich Qt Designer, und ich machte ein Fenster mit einem Druckknopf OpenImage benannt. Außerdem habe ich eine Datei rony.py genannt, die eine Funktion show hat. Deshalb möchte ich, dass, wenn der Benutzer auf die Schaltfläche klickt, wird das Bild angezeigt.Wie eine QPushButton auf eine Funktion

Dies ist mein Code:

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() 

Antwort

0

Sie haben den Namen des Skripts zu verweisen, wenn eine Funktion von ihm fordern. Es funktioniert wie eine Bibliothek:

OpenImage.connect(rony.show()) 
Verwandte Themen