Программа на PyQt5 повисает при выполнении цикла
Задача такова, при нажатии на кнопку, у меня идёт подключение по ssh к каждому серверу, выполняет команду, и возвращает нужные данные, с терминала проходит всё хорошо, сделал интерфейс, нажимаю на кнопку, и через сек 10-20 программа не отвечает, как решить проблему? Я не давно в python, писали за потоки, но я сомневаюсь что поможет Проблема при выполнении def smart()
import sys
import smart
from PyQt5 import QtCore, QtGui, QtWidgets
from fb import Ui_MainWindow
import time
# Создание приложения
app = QtWidgets.QApplication(sys.argv)
# Создание формы и init ui
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
# if __name__ == "__main__":
# Логика приложения
def get_json():
import api
cp = api.Api()
# Выводим процесс
# ui.plainTextEdit.appendPlainText("Процесс:)")
if ui.radioButton.isChecked():
kvm = str("KVM-SSD-1")
cp.get_api(kvm)
data = smart.shell_cluster(kvm)
out_win = "Собрал все данные в KVM-SSD-2.json"
elif ui.radioButton_2.isChecked():
kvm = str("KVM-SSD-2")
cp.get_api(kvm)
data = smart.shell_cluster(kvm)
out_win = "Собрал все данные в KVM-SSD-2.json"
elif ui.radioButton_3.isChecked():
kvm = str("KVM-SATA-1")
cp.get_api(kvm)
data = smart.shell_cluster(kvm)
out_win = "Собрал все данные в KVM-SATA-1.json"
ui.plainTextEdit.appendPlainText(out_win)
ui.plainTextEdit.appendPlainText(data)
def smart():
import smart
smart = smart.Smart()
if ui.radioButton.isChecked():
kvm = str("KVM-SSD-1")
data = smart.shell_cluster(kvm)
elif ui.radioButton_2.isChecked():
kvm = str("KVM-SSD-2")
data = smart.shell_cluster(kvm)
elif ui.radioButton_3.isChecked():
kvm = str("KVM-SATA-1")
data = smart.shell_cluster(kvm)
# print(data)
for key in data:
name = [data[key]['ip']]
ip = [data[key]['ip']]
# print(sm)
ui.plainTextEdit.appendPlainText(name)
ui.plainTextEdit.appendPlainText(ip)
ui.pushButton.clicked.connect(get_json)
ui.pushButton_2.clicked.connect(smart)
# Запустить основной цикл
sys.exit(app.exec_())