def set_table_info(self): self.table_widget.setSortingEnabled(False) self.table_items = my_sql.sql_select(self.query_table_select) if "mysql.connector.errors" in str(type(self.table_items)): QMessageBox.critical(self, "Ошибка sql получение таблицы", self.table_items.msg, QMessageBox.Ok) return False self.table_widget.clearContents() self.table_widget.setRowCount(0) if not self.table_items: return False for table_typle in self.table_items: self.table_widget.insertRow(self.table_widget.rowCount()) for column in range(2, len(table_typle)): item = QTableWidgetItem(str(table_typle[column])) item.setData(5, table_typle[0]) self.table_widget.setItem(self.table_widget.rowCount() - 1, column - 2, item) self.table_widget.setSortingEnabled(True) try: item = self.tree_widget.currentItem() if item.data(0, 5) >= 0: # Проверка не выбрано ли показать все! self.ui_sorting(item) except: pass if self.select_item: self.open_id(self.select_item) self.select_item = None
def reserve(self, item: QTableWidgetItem): if item.column() == 0: if item.text() == "": return 提供日 = item.data(Qt.UserRole) self.ui.close() self.予約画面.提供日 = 提供日 self.予約画面.plot_data()
def handle_item_checked_new(self, item: QtWidgets.QTableWidgetItem): # self._validator.blockSignals(True) user, char = item.data(QtConstants.UserRole) checked = item.checkState() == QtConstants.Checked print((user, char), '->', checked) if checked: self._validator.add_symbol_for_user(user, char) else: self._validator.remove_symbol(user, char)
def joint_item_changed(self, item: qtw.QTableWidgetItem): if self.model["valid"] and self.tbl_joints.currentItem() is not None: joint_index = self.tbl_joints.currentItem().row() self.model["motion2_data"]["position"][ self.model["current_frame"]]["parameters"][ joint_index] = item.data(qtc.Qt.DisplayRole) if not self.model["live_mode"]: self.render_view.update() if self.model["puppet_mode"]: self.send_current_frame()
def _handle_item_edit(self, item: QtWidgets.QTableWidgetItem): if not item.column() == 1: return current_specifications = copy.copy( self._lobby_view.lobby.game_options['pool_specification']) current_specifications[item.row()]['amount'] = int(item.data(0)) self._lobby_view.lobby_model.set_options( self._lobby_view.lobby.name, {'pool_specification': current_specifications}, )
def set_value_to_user(self, a_item: QtWidgets.QTableWidgetItem): self.ui.limits_table.blockSignals(True) try: if a_item.column() == ScaleLimitsDialog.Column.LIMIT: value_f = utils.parse_input(a_item.text()) signal_type = clb.SignalType( self.ui.limits_table.cellWidget( a_item.row(), ScaleLimitsDialog.Column.SIGNAL_TYPE).currentIndex()) units = clb.signal_type_to_units[signal_type] value_f = clb.bound_amplitude(value_f, signal_type) value_str = utils.value_to_user_with_units(units)(value_f) a_item.setText(value_str) a_item.setData(QtCore.Qt.UserRole, value_str) except ValueError: a_item.setText(a_item.data(QtCore.Qt.UserRole)) self.ui.limits_table.blockSignals(False)
def update_schedule(self) -> None: self.clearSpans() self.clearContents() rows = self._schedule_ref.rows() columns = self._schedule_ref.columns() self.setRowCount(rows) self.setColumnCount(columns) i = 0 for day_number, schedule_element in enumerate(self._schedule_ref): min_i = i for line in schedule_element: j = 0 while j < columns: text = "" duration = 1 pairs = line.get(j) if pairs is not None: duration = pairs[0]["time"].duration() for pair in pairs: text += str(pair) + "\n" item = QTableWidgetItem(text) item.setTextAlignment(Qt.AlignTop | Qt.AlignLeft) item.setData(Qt.UserRole, duration) self.setItem(i, j, item) j += duration i += 1 for n in range(columns): for m in range(i - 1, min_i - 1, -1): item = self.item(m, n) if item is not None: up_level, down_level = m, m duration = item.data(Qt.UserRole) # down for p in range(m + 1, i): free = True for r in range(duration): cmp_item = self.item(p, n + r) if cmp_item is None or cmp_item.text() != "": free = False break if free: down_level = p for r in range(duration): self.takeItem(p, n + r) else: break # up for p in range(m - 1, min_i - 1, -1): free = True for r in range(duration): cmp_item = self.item(p, n + r) if cmp_item is None or cmp_item.text() != "": free = False break if free: up_level = p for r in range(duration): self.takeItem(p, n + r) else: break if (abs(up_level - down_level) + 1) > 1 or duration > 1: if self.columnSpan(up_level, n) == 1 or \ self.rowSpan(up_level, n) == 1: self.setItem(up_level, n, self.takeItem(m, n)) self.setSpan(up_level, n, abs(up_level - down_level) + 1, duration) self.resize_table()
def build_aa_layout(self, pak): trees_id = self.get_tree_tabs(pak) trees_info = eq2s_func.get_db_content('aatree', 'id', trees_id) self.aa_maxpoints = {} self.aa_clickedpoints = {} self.aa_points_display = {} # store aa tabs self.aa_tables = {} tradeskilltabs = [] # adventure tabs for each in sorted(trees_id): name = trees_info[each]['name'] # store all tradeskill aa tab into a list, and make all of them next to adventure tabs. if name in ['Tradeskill', 'General', 'Far Seas']: tradeskilltabs.append(each) continue # jumping to tabs creating function tab = self.create_tabs(each) self.aa_maxpoints[each] = trees_info[each][ 'maxpointsperlevelnode_list'][-1]['maxpoints'] self.aa_clickedpoints[each] = 0 self.aa_points_display[each].setText('{} / {}'.format( self.aa_clickedpoints[each], self.aa_maxpoints[each])) self.tab_widget.addTab(tab, name) # tradeskill tabs for each in tradeskilltabs: tab = self.create_tabs(each) self.aa_maxpoints[each] = trees_info[each][ 'maxpointsperlevelnode_list'][-1]['maxpoints'] self.aa_clickedpoints[each] = 0 self.aa_points_display[each].setText('{} / {}'.format( self.aa_clickedpoints[each], self.aa_maxpoints[each])) self.tab_widget.addTab(tab, trees_info[each]['name']) self.splnodes = {} # construct the aa layout try: for e1 in trees_info: grid_n = eq2s_func.get_aa_tree_grid_modifier( trees_info[e1]['name']) for e2 in trees_info[e1]['alternateadvancementnode_list']: epicon = QTableWidgetItem() epicon.setFont(QFont("Times", 15, QFont.Black)) # get the crc group spells from local databases, cuz only one target provide, # so I just extract the only list from the returned dict. crcs = eq2s_func.get_db_content( 'crcspl', 'crc', (e2['spellcrc'], ))[e2['spellcrc']] # this dict intend to save ordered level(tier) crc spells, the keys means tier of this spell. crcdict = {} for each in crcs: crcdict[each['tier']] = each epicon.setData(1000, crcdict) self.splnodes[e2['nodeid']] = epicon epicon.setToolTip(eq2s_func.CookSpellText(crcs[0])) icon = QIcon() iconid = epicon.data(1000)[1]['icon']['id'] # backiconid = epicon.data(1000)[0]['icon']['backdrop'] icon.addPixmap( eq2s_func.get_pixmap_in_db(iconid, 'spellicons')) # epicon.setBackground(QBrush(eq2s_func.get_pixmap_in_db(backiconid, 'spellicons'))) epicon.setIcon(icon) self.aa_tables[e1].setItem( int(e2['ycoord'] * grid_n['y'] + 1), int(e2['xcoord'] * grid_n['x'] + 1), epicon) except BaseException as err: QMessageBox().critical(self, 'Loading Error', 'Something Bad Happen:\n{}'.format(err)) print(err) return self.fresh_tables() self.throw_aas(pak)