def llenarTablaRestr(self): self.tablaRestricciones.clear() self.tablaRestricciones.setRowCount(self.numRestricciones) self.tablaRestricciones.setColumnCount(self.numVariables) for j in range(self.numVariables): item1 = QTableWidgetItem(f"X{j+1}") item1.setBackground(QtGui.QColor(0, 153, 153)) self.tablaRestricciones.setHorizontalHeaderItem(j, item1) for i in range(self.numVariables, self.numVariables + 2): item = QTableWidgetItem(" ") self.tablaRestricciones.insertColumn(i) item.setBackground(QtGui.QColor(0, 153, 153)) self.tablaRestricciones.setHorizontalHeaderItem(i, item) fila = 0 colum = self.numVariables cmbMeth = self.comboMetodo for j in range(self.numRestricciones): self.cmbSigno = QComboBox() self.cmbSigno.addItem("<=") if cmbMeth.currentIndex() == 1: self.cmbSigno.addItem(">=") self.cmbSigno.addItem("=") self.tablaRestricciones.setCellWidget(fila, colum, self.cmbSigno) fila += 1
def setup_ui(self): self.l = l = QVBoxLayout(self) self.la = la = QLabel(_( 'Create rules to convert identifiers into links.')) la.setWordWrap(True) l.addWidget(la) items = [] for k, lx in iteritems(msprefs['id_link_rules']): for n, t in lx: items.append((k, n, t)) items.sort(key=lambda x:sort_key(x[1])) self.table = t = QTableWidget(len(items), 3, self) t.setHorizontalHeaderLabels([_('Key'), _('Name'), _('Template')]) for r, (key, val, template) in enumerate(items): t.setItem(r, 0, QTableWidgetItem(key)) t.setItem(r, 1, QTableWidgetItem(val)) t.setItem(r, 2, QTableWidgetItem(template)) l.addWidget(t) t.horizontalHeader().setSectionResizeMode(2, t.horizontalHeader().Stretch) self.cb = b = QPushButton(QIcon(I('plus.png')), _('&Add rule'), self) connect_lambda(b.clicked, self, lambda self: self.edit_rule()) self.bb.addButton(b, self.bb.ActionRole) self.rb = b = QPushButton(QIcon(I('minus.png')), _('&Remove rule'), self) connect_lambda(b.clicked, self, lambda self: self.remove_rule()) self.bb.addButton(b, self.bb.ActionRole) self.eb = b = QPushButton(QIcon(I('modified.png')), _('&Edit rule'), self) connect_lambda(b.clicked, self, lambda self: self.edit_rule(self.table.currentRow())) self.bb.addButton(b, self.bb.ActionRole) l.addWidget(self.bb)
def init_columns(self, defaults=False): # Set up columns self.opt_columns.blockSignals(True) self.model = model = self.gui.library_view.model() colmap = list(model.column_map) state = self.columns_state(defaults) self.hidden_cols = state['hidden_columns'] positions = state['column_positions'] colmap.sort(key=lambda x: positions[x]) self.opt_columns.clear() db = model.db self.field_metadata = db.field_metadata self.opt_columns.setColumnCount(4) item = QTableWidgetItem(_('Column header')) self.opt_columns.setHorizontalHeaderItem(0, item) item = QTableWidgetItem(_('Lookup name')) self.opt_columns.setHorizontalHeaderItem(1, item) item = QTableWidgetItem(_('Type')) self.opt_columns.setHorizontalHeaderItem(2, item) item = QTableWidgetItem(_('Description')) self.opt_columns.setHorizontalHeaderItem(3, item) self.opt_columns.setRowCount(len(colmap)) self.column_desc = dict(map(lambda x:(CreateCustomColumn.column_types[x]['datatype'], CreateCustomColumn.column_types[x]['text']), CreateCustomColumn.column_types)) for row, col in enumerate(colmap): self.setup_row(self.field_metadata, row, col) self.restore_geometry() self.opt_columns.cellDoubleClicked.connect(self.row_double_clicked) self.opt_columns.blockSignals(False)
def cargar_tabla(): #crea tabla con la query correspondiente: comics = base.query_select_comics() fila = 0 for c in comics: vt.tbl_tabla.insertRow(fila) columna = 0 for e in range(7): celda = QTableWidgetItem(str(c[e])) vt.tbl_tabla.setItem(fila, columna, celda) columna += 1 img = "portadas/" + str(c[0]) + ".jpg" if Path(img).is_file( ): #si en la fila correspondiente hay imagen guardada, crea el botón para mostrarla: btn_miniatura = QPushButton(" Ampliar") ico = QtGui.QIcon( ) #se crea icono de la portada que llevará el botón ico.addPixmap(QtGui.QPixmap(img), QtGui.QIcon.Normal, QtGui.QIcon.Off) btn_miniatura.setIcon(ico) btn_miniatura.setStyleSheet( "*{min-width: 1px;" ) #evita restricción del ancho de los botones a 80px de la hoja de estilo dark btn_miniatura.clicked.connect( partial(ver_portada, c[0]) ) #llama a la funcion para ampliar portada en nueva ventana, pasando su Id vt.tbl_tabla.setCellWidget(fila, columna, btn_miniatura) else: #si el Id no tiene imagen: valor = QTableWidgetItem("Sin portada") vt.tbl_tabla.setItem(fila, columna, valor) fila += 1
def insert_users_into_table(self, users): self.ui.tableWidget_userInfo.clearContents() totalrow = self.ui.tableWidget_userInfo.rowCount() assert totalrow >= 10 # 这里的10是你之前在ui设置的10行 for i in range(totalrow - 1, 10, -1): # 多出几行删几行,不然你的行数会一直增加 self.ui.tableWidget_userInfo.removeRow(i) user_index = 0 # 记录第几个用户, 第几个用户就放在第几行 for user in users: user_ID = user['remote_identity'] username = user['name'] pwd = user['password'] auth = str(user['authority']) name_Item = QTableWidgetItem(username) name_Item.setTextAlignment(132) pwd_Item = QTableWidgetItem(pwd) pwd_Item.setTextAlignment(132) ID_Item = QTableWidgetItem(user_ID) ID_Item.setTextAlignment(132) auth_Item = QTableWidgetItem(auth) auth_Item.setTextAlignment(132) self.ui.tableWidget_userInfo.insertRow(user_index) self.ui.tableWidget_userInfo.setItem(user_index, 0, name_Item) self.ui.tableWidget_userInfo.setItem(user_index, 1, pwd_Item) self.ui.tableWidget_userInfo.setItem(user_index, 2, ID_Item) self.ui.tableWidget_userInfo.setItem(user_index, 3, auth_Item) user_index += 1
def llenarTablaRestr(self): self.tablaRestricciones.clear() self.tablaRestricciones.setRowCount(self.numRestricciones) self.tablaRestricciones.setColumnCount(self.numVariables) for j in range(self.numVariables): item1 = QTableWidgetItem(f"X{j+1}") item1.setBackground(QtGui.QColor(37, 40, 80)) item1.setForeground(QtGui.QColor(255, 255, 255)) self.tablaRestricciones.setHorizontalHeaderItem(j, item1) for i in range(self.numVariables, self.numVariables + 2): item = QTableWidgetItem(" ") self.tablaRestricciones.insertColumn(i) item.setBackground(QtGui.QColor(37, 40, 80)) item.setForeground(QtGui.QColor(255, 255, 255)) self.tablaRestricciones.setHorizontalHeaderItem(i, item) fila = 0 colum = self.numVariables for j in range(self.numRestricciones): self.cmbSigno = QComboBox() self.cmbSigno.addItem("<=") self.tablaRestricciones.setCellWidget(fila, colum, self.cmbSigno) fila += 1
def bd_score(self): con = sqlite3.connect(resource_path("DB/score.db")) # Создание курсора cur = con.cursor() # Выполнение запроса и получение всех результатов result = cur.execute( "SELECT * FROM main ORDER BY score DESC;").fetchmany(5) cur.execute("DROP TABLE main") cur.execute("CREATE TABLE main (name STRING, score INTEGER)") for item in result: cur.execute("INSERT INTO main VALUES(?, ?)", (item[0], item[1])) con.commit() # Вывод результатов на экран if result != []: self.table_score.setColumnCount(len(result[0])) self.table_score.setRowCount(0) for i, row in enumerate(result): self.table_score.setRowCount(self.table_score.rowCount() + 1) for j, elem in enumerate(row): item = QTableWidgetItem(str(elem)) self.table_score.setItem(i, j, item) item.setFlags(QtCore.Qt.ItemIsEnabled) self.table_score.setHorizontalHeaderItem( 0, QTableWidgetItem("Имя игрока")) self.table_score.setHorizontalHeaderItem(1, QTableWidgetItem("Счет")) self.table_score.setColumnWidth(0, 127) self.table_score.setColumnWidth(1, 20) con.close()
def redraw_row(self, integration): """ Takes the integration, and redraws the variable fields in the row :param value: list of Integration objects :return: None """ if integration.id not in self.showing: return self.blockSignals( True ) # signals are blocked during redraw so cellChanged -> change_label is not called row = self.showing.index(integration.id) self.setItem(row, Col.label.value, QTableWidgetItem(integration.label)) mean_item = QTableWidgetItem('{num:.{precision}E}'.format( num=Decimal(integration.mean), precision=self.precision)) mean_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.setItem(row, Col.mean.value, mean_item) sum_item = QTableWidgetItem('{num:.{precision}E}'.format( num=Decimal(integration.sum), precision=self.precision)) sum_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.setItem(row, Col.integration.value, sum_item) self.blockSignals(False)
def addparameters(self): ''' - Called when `Add` button clicked beside QTableWidget - Open up dialog box to enter parameter and value accordingly - Validate if parameter already in list of parameters - Accordingly add parameter and value in modeldict as well as table - text1 => parameter, text2 => value ''' text1, ok = QtWidgets.QInputDialog.getText(self, 'Parameter', 'Enter Parameter') if ok: if text1 in list(self.modeldict.keys()): self.msg = QtWidgets.QErrorMessage(self) self.msg.setModal(True) self.msg.setWindowTitle("Error Message") self.msg.showMessage("The paramaeter " + text1 + " is already in the list") self.msg.exec_() return text2, ok = QtWidgets.QInputDialog.getText(self, 'Value', 'Enter Value') if ok: currentRowCount = self.modeltable.rowCount() self.modeltable.insertRow(currentRowCount) self.modeltable.setItem(currentRowCount, 0, QTableWidgetItem(text1)) self.modeltable.setItem(currentRowCount, 1, QTableWidgetItem(text2)) self.modeldict[str(text1)] = str(text2) else: pass else: pass
def setup_server_options(self): self.loading_server_options = True directory_dict = self.json.get_directory() path = directory_dict['working-directory'] + '/server.properties' if not os.path.exists(path): self.server_options_table.setRowCount(0) return lines = [line.strip() for line in open(directory_dict['working-directory'] + '/server.properties', 'r') if not line.startswith('#') and line != ''] self.server_options_table.setRowCount(len(lines)) row = 0 column = 0 for line in lines: key, value = line.split('=') if column == 2: column = 0 row += 1 if column == 0: item = QTableWidgetItem(key) item.setFlags(Qt.ItemIsEnabled) self.server_options_table.setItem(row, column, item) column += 1 self.server_options_table.setItem(row, column, QTableWidgetItem(value)) column += 1 self.setup_whitelisted_players_widget() self.setup_banned_players_widget() self.setup_banned_ips() self.setup_operators() self.loading_server_options = False
def update_log(self, book_id, msg): if book_id in self.book_log_map: index = self.book_log_map[book_id] else: index = self.log.rowCount() self.book_log_map[book_id] = index self.log.insertRow(index) title = self.db.get_proxy_metadata(book_id).title title_item = QTableWidgetItem(title) title_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemNeverHasChildren) self.log.setItem(index, 0, title_item) progress = QProgressBar() progress.setMaximum(0) self.log.setCellWidget(index, 1, progress) self.book_progress_map[book_id] = progress if not msg is None: del (self.book_progress_map[book_id]) self.log.setCellWidget(index, 1, None) msg_item = QTableWidgetItem(msg) msg_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemNeverHasChildren) self.log.setItem(index, 1, msg_item)
def okButPressed(self, isEdit, oldSite='',oldUsername=''): try: if not isEdit: self.table.setRowCount(self.table.rowCount()+1) self.username=self.addUI.usrBox.text() self.site=self.addUI.siteBox.text() self.password=self.addUI.passBox.text() bPass=b64encode(encrypt(self.key, self.password)) conn = sqlite3.connect('data') cursor=conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS users_data (userId VARCHAR(100), site VARCHAR(100),username VARCHAR(100) , password VARCHAR(255))") if isEdit: cursor.execute("UPDATE users_data SET site=?, username=?, password=? WHERE userId=? and site=? and username=?",(self.site,self.username,bPass,self.userId,oldSite,oldUsername)) else: cursor.execute("INSERT INTO users_data (userId, site, username, password) VALUES (?,?,?,?)",(self.userId,self.site,self.username,bPass)) conn.commit() conn.close() self.addUI.close() i=self.table.rowCount()-1 if isEdit: i=self.table.selectedIndexes()[0].row() self.table.setItem(i,0,QTableWidgetItem(str(self.site))) self.table.setItem(i,1,QTableWidgetItem(str(self.username))) self.table.setItem(i,2,QTableWidgetItem(str(self.password))) except Exception as e: print(e)
def update_customs(self, host_item): """ Update customs QTableWidget with customs of host item :param host_item: Host item :type host_item: alignak_app.items.host.Host """ logger.debug('Open Customs for %s', host_item.name) self.customs_table.clear() self.customs_table.setHorizontalHeaderLabels(self.table_headers) self.customs_table.setRowCount(len(host_item.data['customs'])) row = 0 for custom in host_item.data['customs']: title_item = QTableWidgetItem() title = '' if '_' in custom[:1]: title = custom[1:] title = title.replace('_', ' ').capitalize() title_item.setText(title) title_item.setToolTip(custom) self.customs_table.setItem(row, 0, title_item) data_item = QTableWidgetItem() data_item.setText(str(host_item.data['customs'][custom])) self.customs_table.setItem(row, 1, data_item) row += 1
def getProblems(self): self.remindLabel.setVisible(False) self.recommendLabel.setVisible(False) self.newrecord.setVisible(False) self.table.setVisible(True) self.aboutcontent.setVisible(False) print('heregetproblem') self.connection = sqlite3.connect("database/oj.db") Data = self.connection.execute( "SELECT id,name,level,tags,AC,ACrate FROM problem Order By id") self.connection.commit() Data = Data.fetchall() row = len(Data) #取得记录个数,用于设置表格的行数 vol = len(Data[0]) #取得字段数,用于设置表格的列数 print(row) print(vol) self.table.setRowCount(row) self.table.setColumnCount(vol) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC人数', 'AC率']) self.table.verticalHeader().setVisible(False) # self.table.horizontalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) # headItem.setBackground(QBrush(QColor(28, 28, 28))) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 80) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 230) self.table.setColumnWidth(4, 50) self.table.setColumnWidth(5, 85) self.table.setRowHeight(0, 30) self.table.setRowHeight(1, 30) self.table.setRowHeight(2, 30) self.table.setRowHeight(3, 30) self.table.setRowHeight(4, 30) self.table.setRowHeight(5, 30) self.table.setRowHeight(6, 30) self.table.setRowHeight(7, 30) self.table.setRowHeight(8, 30) self.table.setRowHeight(9, 30) for i in range(row): if i % 2 == 0: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(vol): temp_data = Data[i][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data)
def addRecordsTable(self): """ Add Records to the Table Widget""" try: self.previousValueList = ["None"] * len( self.planHeatDMM.data.shp_map_csv_fields) for data in self.planHeatDMM.data.shp_map_csv_fields: if data.calculateModel in ( self.planHeatDMM.data.calculateMethod, "Both"): self.combo = QtWidgets.QComboBox() self.combo.addItem(str("None")) for shapeField in self.planHeatDMM.data.originShapeFields: self.combo.addItem(str(shapeField[0])) if data.user_format_match == True: self.combo.currentTextChanged.connect( self.checkFieldDataFormat) rowPosition = self.fieldUserMapTable.rowCount() self.fieldUserMapTable.insertRow(rowPosition) self.combo.setObjectName(str(rowPosition)) self.combo.currentTextChanged.connect( self.checkHeightMandatoryField) self.fieldUserMapTable.setItem( rowPosition, 0, QTableWidgetItem(data.fieldName)) self.fieldUserMapTable.setCellWidget( rowPosition, 1, self.combo) self.fieldUserMapTable.setItem( rowPosition, 2, QTableWidgetItem(data.fieldState)) l = [ x for x in self.planHeatDMM.data.shpDMMFieldsMap if x.fieldName == data.fieldName and x.user_definition_field.lower not in ("", "none") ] if l: self.combo.setCurrentText(l[0].user_definition_field) self.previousValueList[rowPosition] = l[ 0].user_definition_field if data.fieldState.lower() in ('mandatory'): self.fieldUserMapTable.item( rowPosition, 2).setForeground(QtGui.QColor(255, 0, 0)) except: self.planHeatDMM.resources.log.write_log( "ERROR", "FieldUserMapDialog - addRecordTable Unexpected error:" + str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1])) showErrordialog( self.planHeatDMM.dlg, "FieldUserMapDialog - addRecordTable Unexpected error:", str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1]))
def addbutton(self): self.connection = sqlite3.connect("database/oj.db") f = open(r'database/username.txt') username = f.read() f.close() topTen = self.connection.execute( "SELECT user1,user2,user3,user4,user5,user6,user7,user8,user9,user10 FROM secondrecommend WHERE username = '******'" % username) # print(topTen) self.connection.commit() # print(Data) topTen = topTen.fetchall() self.table.setRowCount(10) self.table.setColumnCount(6) self.table.setHorizontalHeaderLabels( ['编号', '题目名字', '题目等级', '题目标签', 'AC率', 'AC人数']) self.table.verticalHeader().setVisible(False) self.table.horizontalHeader().setFixedHeight(25) for index in range(self.table.columnCount()): headItem = self.table.horizontalHeaderItem(index) headItem.setFont(QFont("song", 9, QFont.Bold)) headItem.setForeground(QBrush(QColor(137, 199, 161))) headItem.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) self.table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 120) self.table.setColumnWidth(2, 90) self.table.setColumnWidth(3, 186) self.table.setColumnWidth(4, 98) self.table.setColumnWidth(5, 60) self.table.setRowHeight(0, 38) self.table.setRowHeight(1, 38) self.table.setRowHeight(2, 38) self.table.setRowHeight(3, 38) self.table.setRowHeight(4, 38) self.table.setRowHeight(5, 38) self.table.setRowHeight(6, 38) self.table.setRowHeight(7, 38) self.table.setRowHeight(8, 38) self.table.setRowHeight(9, 38) for i in range(10): Data = self.connection.execute( "SELECT id,name,level,tags,ACrate,AC FROM problem where id = '%s'" % topTen[0][i]) Data = Data.fetchall() if i % 2 == 0: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(245, 245, 244))) self.table.setItem(i, j, data) else: for j in range(6): temp_data = Data[0][j] #临时记录,不能直接插入表格 data = QTableWidgetItem(str(temp_data)) #转换后可插入表格 data.setBackground(QBrush(QColor(254, 254, 254))) self.table.setItem(i, j, data)
def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.fcfs_button.setText(_translate("MainWindow", "先来先服务")) self.sjf_button.setText(_translate("MainWindow", "短作业优先")) self.rr_button.setText(_translate("MainWindow", "时间片轮转")) self.static_button.setText(_translate("MainWindow", "静态优先级")) self.hrrn_button.setText(_translate("MainWindow", "最高响应比")) self.title.setText( _translate( "MainWindow", "<html><head/><body><p><span style=\" font-size:16pt;\">处理机调度算法</span></p></body></html>" )) item = self.result_table.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "进程名")) item = self.result_table.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "到达时间")) item = self.result_table.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "服务时间")) item = self.result_table.horizontalHeaderItem(3) item.setText(_translate("MainWindow", "优先级")) item = self.result_table.horizontalHeaderItem(4) item.setText(_translate("MainWindow", "开始时间")) item = self.result_table.horizontalHeaderItem(5) item.setText(_translate("MainWindow", "结束时间")) item = self.result_table.horizontalHeaderItem(6) item.setText(_translate("MainWindow", "周转时间")) item = self.result_table.horizontalHeaderItem(7) item.setText(_translate("MainWindow", "带权周转时间")) __sortingEnabled = self.result_table.isSortingEnabled() self.result_table.setSortingEnabled(False) self.result_table.setSortingEnabled(__sortingEnabled) self.avg_label.setText(_translate("MainWindow", "平均周转时间:")) self.avg_w_label.setText(_translate("MainWindow", "平均带权周转时间:")) self.time_label.setText(_translate("MainWindow", "时间片:")) self.insert_button.setText(_translate("MainWindow", "添加进程")) self.menu.setTitle(_translate("MainWindow", "文件")) self.menu_2.setTitle(_translate("MainWindow", "帮助")) f_list = self.create_list() for i in range(0, len(f_list)): # 进程名 name = '{}'.format(f_list[i].name) n_data = QTableWidgetItem(str(name)) self.result_table.setItem(i, 0, n_data) # 到达时间 arrival_time = '{}'.format('%.2f' % f_list[i].arrival_time) a_data = QTableWidgetItem(str(arrival_time)) self.result_table.setItem(i, 1, a_data) # 服务时间 service_time = '{}'.format('%.2f' % f_list[i].service_time) s_data = QTableWidgetItem(str(service_time)) self.result_table.setItem(i, 2, s_data) # 优先级 priority = '{}'.format('%.2f' % f_list[i].priority) p_data = QTableWidgetItem(str(priority)) self.result_table.setItem(i, 3, p_data)
def createtable(self, modelfile): ''' - Set states for other components - Initialise QTable widget - Set options for QTable widget - Place QTable widget, using `self.grid.addWidget` - Select the `.xml` file from the modelfile passed as `.lib` - Use ET (xml.etree.ElementTree) to parse the xml file - Extract data from the XML and store it in `modeldict` - Show the extracted data in QTableWidget - Can edit QTable inplace, connect `edit_modeltable`\ function for editing ''' self.savebtn.setDisabled(False) self.addbtn.setHidden(False) self.removebtn.setHidden(False) self.modelfile = modelfile self.modeldict = {} self.modeltable = QtWidgets.QTableWidget() self.modeltable.resizeColumnsToContents() self.modeltable.setColumnCount(2) self.modeltable.resizeRowsToContents() self.modeltable.resize(200, 200) self.grid.addWidget(self.modeltable, 3, 2, 8, 2) filepath, filename = os.path.split(self.modelfile) base, ext = os.path.splitext(filename) self.modelfile = os.path.join(filepath, base + '.xml') print("Model File used for creating table : ", self.modelfile) self.tree = ET.parse(self.modelfile) self.root = self.tree.getroot() for elem in self.tree.iter(tag='ref_model'): self.ref_model = elem.text for elem in self.tree.iter(tag='model_name'): self.model_name = elem.text row = 0 # get data from XML and store to dictionary (self.modeldict) for params in self.tree.findall('param'): for paramlist in params: self.modeldict[paramlist.tag] = paramlist.text row = row + 1 self.modeltable.setRowCount(row) count = 0 # setItem in modeltable, for each item in modeldict for tags, values in list(self.modeldict.items()): self.modeltable.setItem(count, 0, QTableWidgetItem(tags)) try: valueitem = QTableWidgetItem(values) except BaseException: pass self.modeltable.setItem(count, 1, valueitem) count = count + 1 self.modeltable.setHorizontalHeaderLabels( ("Parameters;Values").split(";") ) self.modeltable.show() self.modeltable.itemChanged.connect(self.edit_modeltable)
def updateTable(self, words): results = [] self.table.setRowCount(len(words)) i = 0 for word in words: self.table.setItem(i, 0, QTableWidgetItem(word.short)) self.table.setItem(i, 1, QTableWidgetItem(word.long)) self.table.setItem(i, 2, QTableWidgetItem(word.explain)) i += 1 results.append(word.short) return results
def add_bot(self, bot: Bot): """Adds a bot to the table.""" self.setRowCount(self.rowCount() + 1) created_row = self.rowCount() - 1 self.setItem(created_row, 0, QTableWidgetItem(bot.uid)) self.setItem(created_row, 1, QTableWidgetItem(bot.username + "@" + bot.hostname)) self.setItem(created_row, 2, QTableWidgetItem("")) self.setItem(created_row, 3, QTableWidgetItem( strftime("%a, %b %d @ %H:%M:%S", localtime(bot.last_online)) ))
def setup_row(self, field_metadata, row, col, oldkey=None): flags = Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable item = QTableWidgetItem(col) item.setFlags(flags) self.opt_columns.setItem(row, 1, item) if col.startswith('#'): fm = self.custcols[oldkey if oldkey is not None else col] else: fm = field_metadata[col] if col == 'title': coltype = _('Text') elif col == 'ondevice': coltype = _('Yes/No with text') else: dt = fm['datatype'] if fm['is_multiple']: if col == 'authors' or fm.get('display', {}).get( 'is_names', False): coltype = _( 'Ampersand separated text, shown in the Tag browser') else: coltype = self.column_desc['*' + dt] else: coltype = self.column_desc[dt] coltype_info = (coltype if oldkey is None else ' ' + _('(lookup name was {0}) {1}'.format(oldkey, coltype))) item = QTableWidgetItem(coltype_info) item.setFlags(flags) self.opt_columns.setItem(row, 2, item) desc = fm['display'].get('description', "") item = QTableWidgetItem(desc) item.setFlags(flags) self.opt_columns.setItem(row, 3, item) item = QTableWidgetItem(fm['name']) item.setData(Qt.ItemDataRole.UserRole, (col)) item.setFlags(flags) self.opt_columns.setItem(row, 0, item) if col.startswith('#'): item.setData(Qt.ItemDataRole.DecorationRole, (QIcon(I('column.png')))) if col != 'ondevice': flags |= Qt.ItemFlag.ItemIsUserCheckable item.setFlags(flags) if col != 'ondevice': item.setCheckState(Qt.CheckState.Unchecked if col in self.hidden_cols else Qt.CheckState.Checked)
def add_ticker_to_table(self, ticker): self.TableWidget_tickers.insertRow(0) self.TableWidget_tickers.setItem( 0, 0, QTableWidgetItem( dt.datetime.fromtimestamp( ticker.TickerTime).strftime('%H:%M:%S'))) self.TableWidget_tickers.setItem(0, 1, QTableWidgetItem(str(ticker.Price))) qty = QTableWidgetItem(str(ticker.Qty)) self.TableWidget_tickers.setItem(0, 2, qty) if self.TableWidget_tickers.rowCount() > 100: self.TableWidget_tickers.removeRow(100)
def update_table(self, init=False): if init: self.init_table() records = DatabaseManager.get_all_keyboards() self.keyboard_table.setRowCount(records[0]) for idx, record in enumerate(records[1]): self.keyboard_table.setItem(idx, 1, QTableWidgetItem(record.language_name)) self.keyboard_table.setItem(idx, 2, QTableWidgetItem(str(record.id))) chk_box = QTableWidgetItem() chk_box.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) chk_box.setCheckState(Qt.Unchecked) self.keyboard_table.setItem(idx, 0, chk_box) self.keyboard_table.resizeRowsToContents() return
def impulse_calculate1(self): self.impulse_table.clear() l = self.main_table.columnCount() self.impulse_table.setColumnCount(l) for i in range(l): self.impulse_table.setItem(0, i, QTableWidgetItem('0')) self.impulse_table.setColumnWidth(i, 50) for c in range(self.main_table.columnCount()): it = self.main_table.horizontalHeaderItem(c) item = QTableWidgetItem() self.impulse_table.setHorizontalHeaderItem(c, item) item = self.impulse_table.horizontalHeaderItem(c) item.setText(str(it.text()))
def mostrar_tabla_widget(): ui_ventana_tabla_widget.setupUi(MainWindow) libros = operaciones_bd.obtener_libros() fila = 0 for l in libros: ui_ventana_tabla_widget.tabla_libros.insertRow(fila) celda = QTableWidgetItem(str(l[0])) ui_ventana_tabla_widget.tabla_libros.setItem(fila,0,celda) celda = QTableWidgetItem(str(l[1])) ui_ventana_tabla_widget.tabla_libros.setItem(fila,1,celda) celda = QTableWidgetItem(str(l[2])) ui_ventana_tabla_widget.tabla_libros.setItem(fila,2,celda) celda = QTableWidgetItem(str(l[3])) ui_ventana_tabla_widget.tabla_libros.setItem(fila,3,celda) fila += 1
def fillStatTable(self, rList, counter, statsTable, statsTableIndex): try: for iD,amount in counter.items(): statsTable.insertRow(statsTableIndex) statsTable.setItem(statsTableIndex, 0, QTableWidgetItem(Globals.tspDict[iD][0])) statsTable.setItem(statsTableIndex, 1, QTableWidgetItem(str(iD))) statsTable.setItem(statsTableIndex, 2,QTableWidgetItem(str(amount))) statsTableIndex = statsTableIndex + 1 tList = self.snifferAPI.getSizeOfObjects(rList) statsTableIndex = 0 for size in tList: statsTable.setItem(statsTableIndex, 3, QTableWidgetItem(str(size))) statsTableIndex = statsTableIndex + 1 except Exception as e: print("Exception occurred: "+str(e))
def add_price_to_table(self, price): max_depth = 5 for i, bid, bid_qty, ask, ask_qty in zip(range(20), price.Bid, price.BidQty, price.Ask, price.AskQty): self.TableWidget_prices.setItem(5 + i, 0, QTableWidgetItem(str(bid))) self.TableWidget_prices.setItem(5 + i, 1, QTableWidgetItem(str(bid_qty))) self.TableWidget_prices.setItem(4 - i, 0, QTableWidgetItem(str(ask))) self.TableWidget_prices.setItem(4 - i, 1, QTableWidgetItem(str(ask_qty))) if max_depth == i + 1: break
def select_all_data(self): self.delete_all_records() font = QtGui.QFont() font.setPointSize(10) self.tableWidget.setFont(font) self.tableWidget.horizontalHeader().setStretchLastSection(True) self.tableWidget.setColumnWidth(0, 100) self.tableWidget.setColumnWidth(1, 100) self.tableWidget.setColumnWidth(2, 100) self.tableWidget.setColumnWidth(3, 150) self.tableWidget.setColumnWidth(4, 150) self.tableWidget.setColumnWidth(5, 150) self.tableWidget.setColumnWidth(6, 150) self.tableWidget.setHorizontalHeaderLabels(['Slip No.','Order Id','Vehicle No.','Material','No.Of.Bags','Net.Wt.','Created On']) connection = sqlite3.connect("fci.db") results=connection.execute("select SERIAL_ID,(SELECT A.ORDER_ID FROM ISSUE_MST A WHERE A.ISSUE_ID=ISSUE_ID) as ISSUE_ID,VEHICLE_NO,MATERIAL_NAME,IFNULL(ACCPTED_BAGS,0),IFNULL(NET_WEIGHT_VAL,0),CREATED_ON FROM WEIGHT_MST WHERE ISSUE_ID IS NOT NULL AND SLOT_1 IN (SELECT SLOT_POP_ID FROM GLOBAL_VAR)") for row_number, row_data in enumerate(results): self.tableWidget.insertRow(row_number) for column_number, data in enumerate(row_data): self.tableWidget.setItem(row_number,column_number,QTableWidgetItem(str (data))) #self.lineEdit.setText("") connection.close() #self.tableWidget.resizeColumnsToContents() self.tableWidget.resizeRowsToContents() self.tableWidget.horizontalHeader().setStretchLastSection(True) self.tableWidget.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers)
def addRecordsTable(self): """ Add Records to the Table Widget""" try: for user_use in self.planHeatDMM.data.inputSHPFieldBuildingUseValues: self.combo = QtWidgets.QComboBox(self) self.combo.setMouseTracking(False) self.combo.setObjectName("userFieldCombo") for data in self.planHeatDMM.data.buildingUse: self.combo.addItem(data.use) l = [x for x in self.planHeatDMM.data.buildingUseMap if x.user_definition_use == user_use and x.DMM_use not in ("","Not evaluate")] if l: self.combo.setCurrentText(l[0].DMM_use) rowPosition = self.buildUseMapTable.rowCount() self.buildUseMapTable.insertRow(rowPosition) self.buildUseMapTable.setItem(rowPosition , 0, QTableWidgetItem(user_use)) self.buildUseMapTable.setCellWidget(rowPosition,1,self.combo) except: self.planHeatDMM.resources.log.write_log("ERROR","BuildingUseMapDialog - addRecordTable Unexpected error:" + str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1])) showErrordialog(self.planHeatDMM.dlg,"BuildingUseMapDialog - addRecordTable Unexpected error:",str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1]))
def mostrar_table_widget_series(): ui_listado_series_table_widget.setupUi(MainWindow) series = operaciones_bd.obtener_series() fila = 0 for s in series: ui_listado_series_table_widget.listado_series_table_widget.insertRow( fila) indice_celda = 0 for valor in s: celda = QTableWidgetItem(str(valor)) ui_listado_series_table_widget.listado_series_table_widget.setItem( fila, indice_celda, celda) indice_celda += 1 #agregamos el boton borrar boton_borrar = QPushButton("BORRAR") boton_borrar.clicked.connect(partial(borrar_serie, s[0])) ui_listado_series_table_widget.listado_series_table_widget.setCellWidget( fila, indice_celda, boton_borrar) #agregamos el boton editar boton_editar = QPushButton("EDITAR") boton_editar.clicked.connect(partial(editar_serie, s[0])) ui_listado_series_table_widget.listado_series_table_widget.setCellWidget( fila, indice_celda + 1, boton_editar) fila += 1