-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
74 lines (59 loc) · 2.37 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
"""
Alumno: Jorge Jhovan Rodriguez Moreno 2030295
Proyecto Individual Unidad 1
Cuando se edita un grafo en el modulo TSP, permite la exportación en formato JSON.
El proyecto debe leer dicho grafo (de un cuadro de texto o de un archivo) y
desplegar el grafo correspondiente en un programa de PyQt5
"""
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QWidget, QLabel, QLineEdit
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtCore import QSize
from grafo import *
class MainWindow(QMainWindow):
"""
Creación de la interfaz inicial del programa.
Interfaz donde se coloca el JSON para su generación. Grafo de la página VisualGO.
"""
def __init__(self):
QMainWindow.__init__(self)
self.setMinimumSize(QSize(700, 140))
self.setWindowTitle("Insertar JSON del grafo")
self.nameLabel = QLabel(self)
self.nameLabel.setText('Ingrese JSON del grafo:')
self.line = QLineEdit(self)
self.line.move(200, 20)
self.line.resize(400, 32)
self.nameLabel.move(20, 20)
self.nameLabel.resize(200,20)
pybutton = QPushButton('Graficar', self)
pybutton.clicked.connect(self.click)
pybutton.resize(250,32)
pybutton.move(270, 60)
def click(self):
self.json=self.line.text()
# Obtener el contenido del QLineEdit
content = self.json
# Intentar cargar el contenido como un objeto JSON
try:
json_object = json.loads(content)
except json.JSONDecodeError:
print("El contenido no es un objeto JSON válido")
message_box = QMessageBox()
message_box.setMinimumSize(QSize(300, 140))
message_box.setIcon(QMessageBox.Critical)
# Establecer el texto del mensaje y el título
message_box.setText("JSON inválido!")
message_box.setWindowTitle("Error")
# Establecer el tipo de botones que aparecerán
message_box.setStandardButtons(QMessageBox.Ok)
# Mostrar el QMessageBox y esperar a que el usuario haga clic en el botón Aceptar
response = message_box.exec()
else:
self.w=grafo(self.json)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit( app.exec_() )