не могу настроить 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_())