예제 #1
0
    def __init__(self):
        # Si, ya sé que tendría que usar super()
        QtGui.QWidget.__init__(self)

        # Esto es siempre EXACTAMENTE igual
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.sheet = SpreadSheet()
        import math
        self.sheet.tools = math
        QtCore.QObject.connect(self.ui.grid,
                               QtCore.SIGNAL("cellChanged(int,int)"),
                               self.calculateCell)
예제 #2
0
class Main(QtGui.QWidget):
    def __init__(self):
        # Si, ya sé que tendría que usar super()
        QtGui.QWidget.__init__(self)

        # Esto es siempre EXACTAMENTE igual
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.sheet = SpreadSheet()
        import math
        self.sheet.tools = math
        QtCore.QObject.connect(self.ui.grid,
                               QtCore.SIGNAL("cellChanged(int,int)"),
                               self.calculateCell)

    def calculateCell(self, row, column):
        # Si no desconecto, cuando calculo la celda llama a calculateCell (maxdepth recursion!)
        QtCore.QObject.disconnect(self.ui.grid,
                                  QtCore.SIGNAL("cellChanged(int,int)"),
                                  self.calculateCell)
        try:  # Puede fallar!

            # Convierto 1,3 en A3
            cellname = chr(ord("A") + column) + str(row + 1)
            # O mejor: a3
            cellname = cellname.lower()

            # Saco la formula de grid
            formula = unicode(self.ui.grid.item(row, column).text()).lower()

            # Asigno la formula a la celda correspondiente en sheet
            self.sheet[cellname] = formula

            # Tomamos el resultado y lo ponemos en la celda
            self.ui.grid.setItem(
                row, column, QtGui.QTableWidgetItem(str(self.sheet[cellname])))
        except:
            pass

        # Reconectamos para que la proxima celda tambien se pueda calcular
        QtCore.QObject.connect(self.ui.grid,
                               QtCore.SIGNAL("cellChanged(int,int)"),
                               self.calculateCell)
예제 #3
0
파일: main.py 프로젝트: hugutux/propython
    def __init__(self):
        # Si, ya sé que tendría que usar super()
        QtGui.QWidget.__init__(self)

        # Esto es siempre EXACTAMENTE igual
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.sheet = SpreadSheet()
        import math

        self.sheet.tools = math
        QtCore.QObject.connect(self.ui.grid, QtCore.SIGNAL("cellChanged(int,int)"), self.calculateCell)
예제 #4
0
파일: main.py 프로젝트: hugutux/propython
class Main(QtGui.QWidget):
    def __init__(self):
        # Si, ya sé que tendría que usar super()
        QtGui.QWidget.__init__(self)

        # Esto es siempre EXACTAMENTE igual
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.sheet = SpreadSheet()
        import math

        self.sheet.tools = math
        QtCore.QObject.connect(self.ui.grid, QtCore.SIGNAL("cellChanged(int,int)"), self.calculateCell)

    def calculateCell(self, row, column):
        # Si no desconecto, cuando calculo la celda llama a calculateCell (maxdepth recursion!)
        QtCore.QObject.disconnect(self.ui.grid, QtCore.SIGNAL("cellChanged(int,int)"), self.calculateCell)
        try:  # Puede fallar!

            # Convierto 1,3 en A3
            cellname = chr(ord("A") + column) + str(row + 1)
            # O mejor: a3
            cellname = cellname.lower()

            # Saco la formula de grid
            formula = unicode(self.ui.grid.item(row, column).text()).lower()

            # Asigno la formula a la celda correspondiente en sheet
            self.sheet[cellname] = formula

            # Tomamos el resultado y lo ponemos en la celda
            self.ui.grid.setItem(row, column, QtGui.QTableWidgetItem(str(self.sheet[cellname])))
        except:
            pass

        # Reconectamos para que la proxima celda tambien se pueda calcular
        QtCore.QObject.connect(self.ui.grid, QtCore.SIGNAL("cellChanged(int,int)"), self.calculateCell)