Commit 6ef92b94 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

network: Add table with dummy data.

Showing with 61 additions and 0 deletions
+61 -0
# -*- coding: utf-8 -*-
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):
def __init__(self, title="Network", parent=None):
super(NetworkWindow, self).__init__(name=title, ui="Network", parent=parent)
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)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment