Exemplo n.º 1
0
 def __init__(self):
     self.labels = columns_labels.generate(1)  # Noms des colonnes
     self.matrix = [[Cell(0, 0)]]  # Initialisation de la matrice
     self.matrix[0][0].name = columns_labels.getLabel(self.labels, 0) + str(1)
     self.columnNumber = 1
     self.rowNumber = 1
     self.saved = True
     self.title = "Nouvelle feuille"
Exemplo n.º 2
0
    def __init__(self, win, network):
        super().__init__()
        self.network = network
        self.coin = MyRect()
        self.delegate = MyDelegate(self)
        self.setItemPrototype(MyItem())
        self.setItemDelegate(self.delegate)
        self.editorcount = 0  # Permet de savoir si l'editeur de celulles est ouvert
        self.delegate.editorcreated.connect(self.itemeditoropened)
        _translate = QtCore.QCoreApplication.translate

        # Activation de la détection de la souris et du filtre d'événements pour la table
        self.setMouseTracking(True)
        self.filter = EventEater(self)
        self.viewport().installEventFilter(self.filter)
        self.setFocus()
        self.setCurrentCell(0, 0)

        # On ajuste le nombre de colonnes/lignes en fonction de la taille de l'écran
        self.screen = QtWidgets.QDesktopWidget()
        self.initialRowsNumber = int(2 * self.screen.height() / CELLHEIGHT)
        self.initialColumnsNumber = int(2 * self.screen.width() / CELLWIDTH)
        self.setColumnCount(self.initialColumnsNumber)
        self.setRowCount(self.initialRowsNumber)
        self.columnsLabels = columns_labels.generate(self.columnCount())  # generation de la liste des labels (colonnes)

        # On attribue un identifiant à chaques colonnes
        for k in range(self.initialRowsNumber):
            item = QtWidgets.QTableWidgetItem()
            self.setVerticalHeaderItem(k, item)
            item.setText(_translate("MainWindow", str(k + 1)))

        # On attribue un identifiant à chaques lignes
        for k in range(self.initialColumnsNumber):
            item = QtWidgets.QTableWidgetItem()
            self.setHorizontalHeaderItem(k, item)
            item.setText(_translate("MainWindow", self.columnsLabels[k]))

        # On ajoute les celulles crées graphiquement au network
        network.addRows(self.initialRowsNumber - 1)
        network.addColumns(self.initialColumnsNumber - 1)

        # On ajoute des lignes à la fin si la barre VERTICALE de scrolling est en bas
        verticalscrollbar = self.verticalScrollBar()

        def ajoutRows():
            if verticalscrollbar.value() == verticalscrollbar.maximum():
                for _ in range(self.initialRowsNumber // 3):
                    self.insertRow(self.rowCount())
                    network.addRow()

        verticalscrollbar.valueChanged.connect(ajoutRows)

        # On ajoute des colonnes à la fin si la barre HORIZONTALE de scrolling est en bas (il faut cette fois renommer les colonnes)
        horizontalscrollbar = self.horizontalScrollBar()

        def ajoutColumns():
            if horizontalscrollbar.value() == horizontalscrollbar.maximum():
                for _ in range(self.initialColumnsNumber // 3):
                    self.insertColumn(self.columnCount())
                    item = QtWidgets.QTableWidgetItem()
                    self.setHorizontalHeaderItem(self.columnCount() - 1, item)
                    item = self.horizontalHeaderItem(self.columnCount() - 1)
                    columns_labels.add(self.columnsLabels, 1)
                    item.setText(_translate("MainWindow", self.columnsLabels[self.columnCount() - 1]))
                    network.addColumn()

        horizontalscrollbar.valueChanged.connect(ajoutColumns)