def addSolution(self, point: str, expr: Tuple[str]): """Add a solution.""" item = QListWidgetItem() self.Expression_list.addItem(item) item.setText("{}[{},{},{},{}]({})".format(*expr)) self.PreviewWindow.setStatus(point, True) self.hasSolution() self.setWarning(self.Expression_list_label, not self.PreviewWindow.isAllLock())
def __add_solution(self, *expr: str): """Add a solution.""" item = QListWidgetItem() self.expression_list.addItem(item) item.setText(f"{expr[0]}[{','.join(expr[1:-1])}]({expr[-1]})") self.PreviewWindow.setStatus(expr[-1], True) self.__set_parm_bind() self.__has_solution() _set_warning(self.expression_list_label, not self.PreviewWindow.isAllLock())
def __addSolution(self, *expr: Tuple[str]): """Add a solution.""" item = QListWidgetItem() self.expression_list.addItem(item) item.setText("{}[{}]({})".format(expr[0], ','.join(expr[1:-1]), expr[-1])) self.PreviewWindow.setStatus(expr[-1], True) self.__setParmBind() self.__hasSolution() self.__setWarning(self.expression_list_label, not self.PreviewWindow.isAllLock())
def on_load_button_clicked(self): """Show up the dialog to load structure data.""" dlg = CollectionsDialog(self) dlg.show() if not dlg.exec_(): return self.profile_name = dlg.name_loaded params = dlg.mechanismParams mapping = params['name_dict'] #Add customize joints. G = Graph(params['Graph']) self.setGraph(G, params['pos']) self.PreviewWindow.cus = params['cus'] self.PreviewWindow.same = params['same'] #Grounded setting. Driver = [mapping[e] for e in params['Driver']] Follower = [mapping[e] for e in params['Follower']] for row, link in enumerate(G.nodes): points = set('P{}'.format(n) for n, edge in edges_view(G) if link in edge) if set(Driver + Follower) <= points: self.grounded_list.setCurrentRow(row) break #Driver, Follower, Target for row in reversed(range(self.Follower_list.count())): if self.Follower_list.item(row).text() in Driver: self.Follower_list.setCurrentRow(row) self.Driver_add.click() self.Target_list.addItems([mapping[e] for e in params['Target']]) self.setWarning(self.Target_label, not self.Target_list.count() > 0) #Constraints self.constraint_list.addItems( [", ".join(mapping[e] for e in c) for c in params['constraint']]) #Expression for expr in params['Expression'].split(';'): params = get_from_parenthesis(expr, '[', ']').split(',') target = get_from_parenthesis(expr, '(', ')') params.append(target) for p in params: try: #Try to avoid replace function name. expr = mapping[p].join(expr.rsplit(p, 1)) except KeyError: continue item = QListWidgetItem() self.Expression_list.addItem(item) item.setText(expr) self.PreviewWindow.setStatus(mapping[target], True) self.setWarning(self.Expression_list_label, not self.PreviewWindow.isAllLock())