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()