示例#1
0
    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
示例#2
0
文件: tree.py 项目: Meller008/CRM-Avi
    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
示例#3
0
    def reserve(self, item: QTableWidgetItem):
        if item.column() == 0:
            if item.text() == "":
                return

            提供日 = item.data(Qt.UserRole)
            self.ui.close()
            self.予約画面.提供日 = 提供日
            self.予約画面.plot_data()
示例#4
0
文件: app.py 项目: ChMcg/MBKS
 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)
示例#5
0
 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()
示例#6
0
    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},
        )
示例#7
0
    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)
示例#8
0
    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()
示例#9
0
    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)