forked from PabloArrietaL/Prim-Kruskal-Algorithm-PyQt5
/
main.py
75 lines (64 loc) · 2.26 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import matplotlib.pyplot as plt
import pandas as pd
import networkx as nx
from PyQt5 import uic, QtWidgets, QtCore
from table import table
from graph import graph
from kruskal import kruskal
from prim import prim
qtCreatorFile = "graphic.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
#Aquí van los botones
self.imp.clicked.connect(self.import_csv)
self.send.clicked.connect(self.show_table)
self.graph.clicked.connect(self.show_graph)
self.kruskal.clicked.connect(self.show_kruskal)
self.prim.clicked.connect(self.show_prim)
self.restart.clicked.connect(self.restar_app)
#Aquí van las nuevas funciones
def import_csv(self):
filePath, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file', '.',"CSV Files (*.csv)")
if filePath != "":
self.df = pd.read_csv(str(filePath),header=None,delimiter=';')
self.send.setEnabled(True)
self.restart.setEnabled(True)
self.imp.setEnabled(False)
def show_table(self):
tab = table(self.df)
text = "\nMatriz de adyacencia\n"+str(tab)
self.result.setText(text)
self.send.setEnabled(False)
self.graph.setEnabled(True)
self.kruskal.setEnabled(True)
self.prim.setEnabled(True)
def show_graph(self):
graph(self.df)
def show_kruskal(self):
text = kruskal(self.df)
self.k_weight.setText(str(text))
def show_prim(self):
text = prim(self.df)
self.p_weight.setText(str(text))
def restar_app(self):
self.result.setText("")
self.p_weight.setText("")
self.k_weight.setText("")
self.imp.setEnabled(True)
self.send.setEnabled(False)
self.graph.setEnabled(False)
self.kruskal.setEnabled(False)
self.prim.setEnabled(False)
self.restart.setEnabled(False)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
app.exec()