не могу настроить pushButton

Никак не получается привязать кнопки интерфейса с действиями

ui.`pushButton` - к `def getFile`

ui.`pushButton_2` - к `def find`

ui.`pushButton_3` - к `def save`

Мой пример:

from PySide import QtCore, QtGui
import sys
from ui import Ui_MainWindow
import os

class File(Ui_MainWindow):
    path = "D:\Test"
    def __init__(self):
        pass

    def getFile(self):
        self.path = path
        for file in os.listdir(path):
            if file.endswith(".html"):
                h = os.path.join(path, file)

    def find(self):
        with open (h, 'r',encoding="utf-8") as f:
            old_data = f.read()
            a = re.findall(r'(<.*>)', old_data)

    def save(self):
        with open ('D:\Test\cest.txt', 'w') as f:
            f.write('\n'.join(a))     
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

модуль UI

from PySide import QtCore, QtGui

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 226)
        MainWindow.setStyleSheet("QMainWindow{\n"
"background-color:gray\n"
"}\n"
"QPushButton {\n"
"    background-color :white;\n"
"    width: 80px;\n"
"    height: 80px;\n"
"    front-size: 15px;\n"
"    border: none;\n"
"    text-aling: center;\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background-color: silver;\n"
"}\n"
"\n"
"QPushButton:pressed{\n"
"    background-color: green\n"
"}")
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(40, 20, 271, 16))
        font = QtGui.QFont()
        font.setFamily("Mongolian Baiti")
        font.setPointSize(14)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.pushButton = QtGui.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(290, 80, 181, 81))
        font = QtGui.QFont()
        font.setFamily("System")
        font.setPointSize(9)
        font.setWeight(75)
        font.setBold(True)
        self.pushButton.setFont(font)
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(480, 80, 191, 81))
        font = QtGui.QFont()
        font.setFamily("System")
        font.setPointSize(9)
        font.setWeight(75)
        font.setBold(True)
        self.pushButton_2.setFont(font)
        self.pushButton_2.setObjectName("pushButton_2")
        self.textEdit = QtGui.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(30, 40, 731, 31))
        self.textEdit.setObjectName("textEdit")
        self.pushButton_3 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_3.setGeometry(QtCore.QRect(100, 80, 181, 81))
        font = QtGui.QFont()
        font.setFamily("System")
        font.setPointSize(9)
        font.setWeight(75)
        font.setBold(True)
        self.pushButton_3.setFont(font)
        self.pushButton_3.setObjectName("pushButton_3")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

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

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("MainWindow", "Введите разположение файла", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Начать чистку HTML файла", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_2.setText(QtGui.QApplication.translate("MainWindow", "Сохранить файл", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_3.setText(QtGui.QApplication.translate("MainWindow", "Найти файл HTML", None, QtGui.QApplication.UnicodeUTF8))


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так (не проверено) :

import sys
import os
from PySide import QtCore, QtGui
from ui import Ui_MainWindow


#class File(Ui_MainWindow):
class File(QtGui.QMainWindow, Ui_MainWindow):                 # +++
    path = "D:\Test"
    def __init__(self):
        super().__init__()                      # забыл добавить !!!
#        pass
        self.setupUi(self)                                    # +++
        self.pushButton.clicked.connect(self.getFile)         # - к def getFile
        self.pushButton_2.clicked.connect(self.find)          # - к def find
        self.pushButton_3.clicked.connect(self.save)          # - к def save 

        self.h = None                                         # +++
        self.a = None                                         # +++

    def getFile(self):
# ?        self.path = path
        for file in os.listdir(self.path):                    # self.path
            if file.endswith(".html"):
                self.h = os.path.join(self.path, file)        # self.h self.path

    def find(self):
        with open (self.h, 'r', encoding="utf-8") as f:      # self.h
            old_data = f.read()
            self.a = re.findall(r'(<.*>)', old_data)         # self.a

    def save(self):
        with open ('D:\Test\cest.txt', 'w') as f:
            f.write('\n'.join(self.a))                        # self.a


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
#    MainWindow = QtGui.QMainWindow()
#    ui = Ui_MainWindow()
#    ui.setupUi(MainWindow)
#    MainWindow.show()
    w = File()
    w.show()
    sys.exit(app.exec_())
→ Ссылка