def __init__(self, parent=None):
        super().__init__(parent)

        self.undo_stack = QUndoStack()
        self.statusBar()

        self.view = Ui_MainWindow()
        self.view.setupUi(self)
        self.view.tableView.setSortingEnabled(False)
        self.view.tableView.setItemDelegate(ItemDelegate(self.undo_stack, self.set_undo_redo_text))

        self.filename = None
        self.table_model = CSVTableModel(self, datalist=[], header=[])

        self.view.actionConnect.setEnabled(True)
        self.view.actionDisconnect.setEnabled(False)
        self.view.actionInsert.setEnabled(False)
        self.view.actionReceive.setEnabled(False)
        self.view.actionCalculate_Predictions.setEnabled(False)

        self.view.actionAbout_Qt.triggered.connect(self.about_qt)
        self.view.actionAbout.triggered.connect(self.about)
        self.view.actionConnect.triggered.connect(self.connect)
        self.view.actionDisconnect.triggered.connect(self.disconnect)
        self.view.actionInsert.triggered.connect(self.insert)
        self.view.actionReceive.triggered.connect(self.receive)
        self.view.actionCalculate_Predictions.triggered.connect(self.calculate_predictions)
        self.view.actionUndo.triggered.connect(self.undo)
        self.view.actionRedo.triggered.connect(self.redo)
        self.view.actionCopy.triggered.connect(self.copy)
        self.view.actionPaste.triggered.connect(self.paste)
        self.view.actionInsert_Row_s.triggered.connect(self.insert_rows)
        self.view.actionDuplicate_Row_s.triggered.connect(self.duplicate_rows)
        self.view.actionRemove_Row_s.triggered.connect(self.remove_rows)
        self.view.actionNew.triggered.connect(self.new)
        self.view.actionOpen.triggered.connect(self.open)
        self.view.actionSave.triggered.connect(self.save)
        self.view.actionSave_as.triggered.connect(self.save_as)

        self.db = None
示例#2
0
    pixmap, icon = resources_cache[filename]
    b = QToolButton()
    b.setIcon(icon)
    b.setIconSize(pixmap.rect().size())
    b.setMaximumWidth(pixmap.rect().width())  # 6
    if name:
        b.setObjectName(name)

    return b


from PySide.QtGui import QStyledItemDelegate
from PySide.QtGui import QUndoCommand, QUndoStack, QLineEdit

undo_stack = QUndoStack()


class UndoProxyEdit(QUndoCommand):
    def __init__(self, old_value, new_value, proxy_model, index):
        super(UndoProxyEdit, self).__init__()

        self._old_value, self._new_value, self._proxy_model, self._index = old_value, new_value, proxy_model, index
        self.setText("Undo")

    def undo(self):
        mainlog.info("Undo")
        self._proxy_model.setData(self._index, self._old_value)

    def redo(self):
        mainlog.info("Redo")