mirror of https://gitlab.com/pamhyr/pamhyr2
network: Add table with dummy data.
parent
4019b45668
commit
6ef92b94d6
|
|
@ -1,8 +1,69 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from view.ASubWindow import ASubWindow
|
from view.ASubWindow import ASubWindow
|
||||||
|
from model.network.Graph import (Node, Edge, Graph)
|
||||||
|
|
||||||
|
from PyQt5.QtCore import (
|
||||||
|
Qt, QVariant, QAbstractTableModel,
|
||||||
|
)
|
||||||
|
|
||||||
|
from PyQt5.QtWidgets import (
|
||||||
|
QTableView,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TableModel(QAbstractTableModel):
|
||||||
|
def __init__(self, headers=[], rows=[]):
|
||||||
|
super(QAbstractTableModel, self).__init__()
|
||||||
|
self.rows = rows
|
||||||
|
self.headers = headers
|
||||||
|
|
||||||
|
def rowCount(self, parent):
|
||||||
|
# How many rows are there?
|
||||||
|
return len(self.rows)
|
||||||
|
|
||||||
|
def columnCount(self, parent):
|
||||||
|
# How many columns?
|
||||||
|
return len(self.headers)
|
||||||
|
|
||||||
|
def data(self, index, role):
|
||||||
|
if role != Qt.ItemDataRole.DisplayRole:
|
||||||
|
return QVariant()
|
||||||
|
|
||||||
|
return self.rows[index.row()][self.headers[index.column()]]
|
||||||
|
|
||||||
|
def headerData(self, section, orientation, role):
|
||||||
|
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Horizontal:
|
||||||
|
return self.headers[section].capitalize()
|
||||||
|
|
||||||
|
if role == Qt.ItemDataRole.DisplayRole and orientation == Qt.Orientation.Vertical:
|
||||||
|
return section
|
||||||
|
|
||||||
|
return QVariant()
|
||||||
|
|
||||||
|
|
||||||
class NetworkWindow(ASubWindow):
|
class NetworkWindow(ASubWindow):
|
||||||
def __init__(self, title="Network", parent=None):
|
def __init__(self, title="Network", parent=None):
|
||||||
super(NetworkWindow, self).__init__(name=title, ui="Network", parent=parent)
|
super(NetworkWindow, self).__init__(name=title, ui="Network", parent=parent)
|
||||||
self.ui.setWindowTitle(title)
|
self.ui.setWindowTitle(title)
|
||||||
|
|
||||||
|
self.graph = Graph()
|
||||||
|
|
||||||
|
n1 = self.graph.add_node()
|
||||||
|
n2 = self.graph.add_node()
|
||||||
|
n3 = self.graph.add_node()
|
||||||
|
|
||||||
|
self.nodes_table_model = TableModel(
|
||||||
|
headers = ["name", "id"],
|
||||||
|
rows = self.graph.nodes()
|
||||||
|
)
|
||||||
|
self.find(QTableView, "tableView_nodes").setModel(self.nodes_table_model)
|
||||||
|
|
||||||
|
self.graph.add_edge(n1, n2)
|
||||||
|
self.graph.add_edge(n2, n3)
|
||||||
|
|
||||||
|
self.reachs_table_model = TableModel(
|
||||||
|
headers = ["name", "node1", "node2"],
|
||||||
|
rows = self.graph.edges()
|
||||||
|
)
|
||||||
|
self.find(QTableView, "tableView_reachs").setModel(self.reachs_table_model)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue