def preencher_tabela(self): self.tableWidget_items.setRowCount(len(self.pedido.itens)) if len(self.pedido.itens) > 0: row = 0 for item_pedido in self.pedido.itens: col = 0 for coluna in self.colunas_item: valor = item_pedido.to_item_dict()[coluna] if col in (4, 5, 6): item = QTableWidgetItem(self.formatar_numero(valor)) item.setTextAlignment(Qt.AlignRight) if col == 4 and item_pedido.alerta != '': item.setIcon(self.icone_alerta) item.setToolTip(item_pedido.alerta) else: item = QTableWidgetItem(self.formatar_numero(valor)) self.tableWidget_items.setItem(row, col, item) col = col + 1 row = row + 1 self.tableWidget_items.setColumnHidden(0, True) self.tableWidget_items.setColumnHidden(1, True) self.tableWidget_items.resizeColumnsToContents() self.limpar_item()
def add_element(self, port, service): self.table.insertRow(self.items) port_item = QTableWidgetItem(str(port)) port_item.setTextAlignment(Qt.AlignCenter) port_item.setFlags(port_item.flags() ^ Qt.ItemIsEditable) service_item = QTableWidgetItem(str(service)) service_item.setFlags(service_item.flags() ^ Qt.ItemIsEditable) service_item.setToolTip("Open in Exploit-db") self.table.setItem(self.items, 0, port_item) self.table.setItem(self.items, 1, service_item) self.items += 1
def add_element(self, status_code, url): self.table.insertRow(self.items) status_code_item = QTableWidgetItem(str(status_code)) status_code_item.setTextAlignment(Qt.AlignCenter) status_code_item.setFlags(status_code_item.flags() ^ Qt.ItemIsEditable) url_item = QTableWidgetItem(url) url_item.setFlags(url_item.flags() ^ Qt.ItemIsEditable) url_item.setToolTip("Open in Browser") self.table.setItem(self.items, 0, status_code_item) self.table.setItem(self.items, 1, url_item) self.items += 1
class EmptyCell(Cell): def __init__(self, table_widget: QTableWidget, account: Account): super(EmptyCell, self).__init__(table_widget, account) self._item = QTableWidgetItem() self._item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) self._row = self._column = None def set(self, row: int, column: int): self._row, self._column = row, column self._table_widget.setItem(row, column, self._item) def setEnabled(self, enabled, disable_tool_tip): if enabled: self._item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) self._item.setToolTip("") else: self._item.setFlags(~(Qt.ItemIsEnabled | Qt.ItemIsSelectable)) self._item.setToolTip(disable_tool_tip)
def ajoutCV(self): newFiles = QFileDialog.getOpenFileNames(self, "Choix CVs", "/home", "CV (*pptx *pdf *docx)") n = len(newFiles[0]) for f in range(0, n): fInfo = QFileInfo(newFiles[0][f]) fShortName = fInfo.baseName() addCV = QListWidgetItem(fShortName) addCV.setToolTip(newFiles[0][f]) ajoutCV = QTableWidgetItem(fShortName) ajoutCV.setToolTip(newFiles[0][f]) if self.ui.tableWidget.rowCount() == 0: self.ui.tableWidget.insertRow(0) self.ui.tableWidget.setItem(0, 0, QTableWidgetItem(ajoutCV)) else: lgTable = self.ui.tableWidget.rowCount() self.ui.tableWidget.insertRow(lgTable) self.ui.tableWidget.setItem(lgTable, 0, QTableWidgetItem(ajoutCV))
def populateTable(self, path): "fill file table with file names" self.showFolder(path) names = [] for n in os.listdir(path): if os.path.isdir(os.path.join(path, n)): continue # folder names.append(n) self.folderTable.clearContents() self.folderTable.setRowCount(len(names)) self.folderTable.setColumnCount(1) if not names: # no files in this folder, inform user self.setMessage('This folder has no files') return self.folderTable.blockSignals(True) selEnab = Qt.ItemIsSelectable | Qt.ItemIsEnabled for i, n in enumerate(names): item = QTableWidgetItem() item.setText(n) item.setToolTip(n) item.setFlags(selEnab) # color code encrypted/decrypted files if n in self.encrypted: item.setTextColor(QColor(211, 70, 0)) # allowed encrypted filenames to be changed item.setFlags(selEnab | Qt.ItemIsEditable) if n in self.decrypted: item.setForeground(QColor(0, 170, 255)) self.folderTable.setItem(i, 0, item) if len(names) > 5: self.setMessage('{:,} files'.format(len(names)), 7) self.folderTable.blockSignals(False) return
async def validateUrl(self, url: str) -> bool: self.download.setDisabled(True) self.files.setDisabled(True) self.files.clearSelection() self.files.clearFocus() self.files.clearContents() self.files.setRowCount(0) self.files.setSortingEnabled(False) self.url.setStyleSheet('') self.modId = 0 if not url: self.urlInfo.setText(''' <font color="#888">Please enter a valid mod url.</font> ''') return False modId = getModId(url) if not modId: self.files.setDisabled(True) self.url.setStyleSheet(''' *{ border: 1px solid #B22222; padding: 1px 0px; } ''') self.urlInfo.setText(''' <font color="#888">Please enter a valid mod url.</font> ''') return False self.urlInfo.setText('🌐') try: filesResponse = await getModFiles(modId) except (RequestError, ResponseError, Exception) as e: self.url.setStyleSheet(''' *{ border: 1px solid #B22222; padding: 1px 0px; } ''') self.urlInfo.setText(f''' <font color="#888">Could not get mod files: {e}.</font> ''') return False try: files = filesResponse['files'] if not len(files): self.urlInfo.setText(f''' <font color="#888">Mod "{modId}" has no files!</font> ''') return False self.files.setRowCount(len(files)) for i in range(len(files)): file = files[i] fileid = int(file['file_id']) name = str(file['name']) version = str(file['version']) _uploadtime = dateparser.parse(file['uploaded_time']) uploadtime = _uploadtime.astimezone(tz=None).strftime( '%Y-%m-%d %H:%M:%S') if _uploadtime else '?' description = html.unescape(str(file['description'])) nameItem = QTableWidgetItem(name) nameItem.setToolTip(name) nameItem.setData(Qt.UserRole, fileid) self.files.setItem(i, 0, nameItem) versionItem = QTableWidgetItem(version) versionItem.setToolTip(version) self.files.setItem(i, 1, versionItem) uploadtimeItem = QTableWidgetItem(uploadtime) uploadtimeItem.setToolTip(uploadtime) self.files.setItem(i, 2, uploadtimeItem) descriptionItem = QTableWidgetItem(description) descriptionItem.setToolTip(description) self.files.setItem(i, 3, descriptionItem) except KeyError as e: logger.exception( f'Could not find key "{str(e)}" in mod files response') self.urlInfo.setText(f''' <font color="#888">Could not find key "{str(e)}" in mod files response.</font> ''') return False self.urlInfo.setText(f''' <font color="#888">Found {len(files)} available files.</font> ''') self.files.resizeColumnsToContents() self.files.setDisabled(False) self.files.setSortingEnabled(True) self.modId = modId return True