示例#1
0
    def __init__(self):
        super(ModulesPage, self).__init__()

        self.manager = ModuleManager()
        self.headers = ['Module', 'Name', 'Dependencies', 'State']

        self.modules = QtGui.QTreeWidget()
        self.modules.setColumnCount(len(self.headers))
        self.modules.setHeaderLabels(self.headers)
        self.modules.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
        self.modules.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
        self.modules.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        self.modules.setUniformRowHeights(True)
        self.modules.setRootIsDecorated(False)

        self.modules.itemSelectionChanged.connect(self.onModuleItemSelected)
        self.modules.itemActivated.connect(lambda: self._enableModules(None))

        self.exportBtn = QtGui.QPushButton('Export...')
        self.exportBtn.clicked.connect(self.onExportButton)

        self.enableBtn = QtGui.QPushButton('Enable')
        self.enableBtn.clicked.connect(lambda: self._enableModules(True))

        self.disableBtn = QtGui.QPushButton('Disable')
        self.disableBtn.clicked.connect(lambda: self._enableModules(False))

        self.installBtn = QtGui.QPushButton('Install...')
        self.installBtn.clicked.connect(self.onInstallButton)

        self.uninstallBtn = QtGui.QPushButton('Uninstall')
        self.uninstallBtn.clicked.connect(self.onUninstallButton)

        buttons = QtGui.QHBoxLayout()
        buttons.setSpacing(10)

        [buttons.addWidget(btn) for btn in \
                (self.exportBtn, self.enableBtn, self.disableBtn, self.installBtn, self.uninstallBtn)]

        layout = QtGui.QVBoxLayout()
        layout.setSpacing(10)

        layout.addWidget(self.modules)
        layout.addLayout(buttons)

        self.setLayout(layout)

        self.populate(update=False)
        self.onModuleItemSelected()