2016-09-14 55 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()) 
相關問題