예제 #1
0
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setLayout(QVBoxLayout())

        tv1 = QTableView(self)
        tv2 = QTableView(self)
        model = QStandardItemModel(8, 4, self)
        proxy = SortFilterProxyModel(self)
        proxy.setSourceModel(model)
        tv1.setModel(model)
        tv2.setModel(proxy)
        self.layout().addWidget(tv1)
        self.layout().addWidget(tv2)

        for i in range(model.rowCount()):
            for j in range(model.columnCount()):
                item = QStandardItem()
                item.setData(random_word(), Qt.DisplayRole)
                model.setItem(i, j, item)

        flayout = QFormLayout()
        self.layout().addLayout(flayout)
        for i in range(model.columnCount()):
            le = QLineEdit(self)
            flayout.addRow("column: {}".format(i), le)
            le.textChanged.connect(lambda text, col=i: proxy.setFilterByColumn(
                QRegExp(text, Qt.CaseSensitive, QRegExp.FixedString), col))
예제 #2
0
    def update_task_list_view(self):
        self.model.clear()
        current_date_tasks = list(
            filter(
                lambda task: task.start_at.date() <= self.date_now and task.
                end_at.date() >= self.date_now, self.active_task_list))

        self.busy = len(current_date_tasks)

        for task in current_date_tasks:
            topic = task.topic
            item = QStandardItem(topic)
            item.setData(task)
            item.setCheckable(True)
            item.setData(task)
            item.setEditable(False)
            self.model.appendRow(item)

        if len(current_date_tasks) == 0:
            self.graphic.setText("")
            self.graphic.setPixmap(QtGui.QPixmap("../Assets/no_task.png"))
            self.graphic.setScaledContents(True)
            self.graphic.setGeometry(QtCore.QRect(260, 195, 252, 211))
            self.label_notask.setGeometry(QtCore.QRect(280, 395, 221, 51))
            font = QtGui.QFont()
            font.setFamily("Roboto Light")
            font.setPointSize(20)
            self.label_notask.setFont(font)
            self.label_notask.setText("You are free on this day !")

        else:
            self.graphic.clear()
            self.label_notask.clear()
예제 #3
0
 def load(self, filename: str):
     model = self.model()
     model.removeRows(0, model.rowCount())
     for name, file_count in get_file_tags(filename):
         model.appendRow(
             [QStandardItem(name),
              QStandardItem(str(file_count))])
예제 #4
0
    def make_words_list(filter_id, rows):
        """
        make words list for filters,
        if find word in list assigned name of category
        :param filter_id:
        :param rows:
        :return:
        """

        session = Session()
        filter_ = session.query(FilterF).get(filter_id)

        ready_valus = []
        for row in rows:
            flag = False
            row = [i.lower() for i in row]
            row = ' '.join(row)
            for category in filter_.categorys:
                words = [b.lower() for b in category.words]
                for word in words:
                    if word in row:
                        item = QStandardItem(str(category.name))
                        ready_valus.append(item)
                        flag = True
                        break
            if flag is False:
                item = QStandardItem('')
                ready_valus.append(item)

        session.close()
        return ready_valus
예제 #5
0
    def run(self):

        rows = connect_to_base_and_execute(
            self.table_query.format(self.ru_entry.text().strip(),
                                    self.cur_entry.text().strip(),
                                    int(self.balance_entry.text().strip())),
            self.error_label, self.user_entry.text(),
            keyring.get_password(getpass.getuser(),
                                 self.user_entry.text()), self.ok_button, "''")
        self.standart_item_model.clear()
        self.table.clearSpans()
        item_list = []
        if rows:
            #print("rows", rows)
            for values in rows:
                item_list = []
                for value in values:
                    if type(value) == int:
                        item = QStandardItem(str(value))
                    else:
                        item = QStandardItem(value)
                    item_list.append(item)
                self.standart_item_model.appendRow(item_list)
            self.standart_item_model.setHorizontalHeaderLabels(
                ["Счет", "РУ", "Валюта", "Остаток"])
            self.table.setModel(self.standart_item_model)
            self.table.setColumnWidth(0, 150)
            self.table.setColumnWidth(1, 60)
            self.table.setColumnWidth(2, 80)
            self.table.setColumnWidth(3, 150)
            if self.standart_item_model.rowCount() > 0:
                frequency = 2500
                duration = 2000
                winsound.Beep(frequency, duration)
예제 #6
0
 def __get_next(self, element_info, parent):
     for child in element_info.children():
         self.__generate_props_dict(child)
         child_item = QStandardItem(self.__node_name(child))
         child_item.setEditable(False)
         parent.appendRow(child_item)
         self.__get_next(child, child_item)
예제 #7
0
 def LoadTable(self):
     '''
     Loads the history as the list
     '''
     try:
         # Clear the table rows
         self.taskViewModel.clear()
         # loads the log data
         self.log_data = self.logManager.LoadLogs(self._task.Guid)
         # prepare timestamp & msg
         for task in self.log_data:
             self.taskViewModel.appendRow([
                 QStandardItem(task['timeStamp']),
                 QStandardItem(task['message'])])
         # set the column header
         self.taskViewModel.setHorizontalHeaderLabels(
             Settings.HIST_TABLE_COLUMNS)
         # set the width of columns
         self.ui.tableView.setColumnWidth(0, 200)
         # set last column as stretchable
         self.ui.tableView.horizontalHeader().setSectionResizeMode(
             1, QHeaderView.Stretch)
         # set text align as left
         self.ui.tableView.horizontalHeader().setDefaultAlignment(
             Qt.AlignLeft)
     except Exception as e:
         print(f'HistryDlg/LoadTable Err:{e}')
 def UpdateListItem(self, task):
     '''
     Updates the current selected item on TableView
     Parameters:
     -----------
     task: MirrorTask
         currently selected task
     '''
     try:
         # if selected task is None, return
         if task is None:
             return
         # Checks if the selected task exist on task list
         index = -1
         for i in range(len(self.TaskList)):
             # compare GUIDs
             if self.TaskList[i].Guid == task.Guid:
                 index = i
                 break
         # if not EXIST, return
         if index < 0:
             return
         # updates the Task Manager
         self.TaskList[i] = self.SelectedTask
         # Rewrites the TableView item
         self.taskViewModel.setItem(index, 0, QStandardItem(task.Source))
         self.taskViewModel.setItem(index, 1, QStandardItem(task.Target))
         _str = Settings.Schedule_String if task.Scheduled else Settings.UnScheduled_String  # noqa
         self.taskViewModel.setItem(index, 2, QStandardItem(_str))
         self.taskViewModel.setItem(index, 3,
                                    QStandardItem(task.LastOperation))
     except Exception as e:
         print(f"UpdateListItem Error:{e}")
    def setTarget(self, target):

        self.setTitle(target.name)
        self.strike_target_infos = target
        model = QStandardItemModel()
        self.listView.setSelectionMode(QAbstractItemView.NoSelection)

        if len(self.strike_target_infos.units) > 0:
            dic = {}
            for u in self.strike_target_infos.units:
                if u.type in dic.keys():
                    dic[u.type] = dic[u.type] + 1
                else:
                    dic[u.type] = 1
            for k, v in dic.items():
                model.appendRow(QStandardItem(k + " x " + str(v)))
                print(k + " x " + str(v))
        else:
            dic = {}
            for b in self.strike_target_infos.buildings:
                id = b.dcs_identifier
                if b.is_dead:
                    id = id + "[Destroyed]"
                if id in dic.keys():
                    dic[id] = dic[id] + 1
                else:
                    dic[id] = 1
            for k, v in dic.items():
                model.appendRow(QStandardItem(k + " x " + str(v)))
                print(k + " x " + str(v))

        self.listView.setModel(model)
예제 #10
0
 def __init__(self, name, rowid, idx):
     QStandardItem.__init__(self)
     self.itemType = 'BOARD'
     self.name = decodeFromDB(name)
     self.rowid = int(rowid)
     self.setText(f'#{rowid}  {name}')
     self.idx = int(idx)
예제 #11
0
    def __init__(self, dialog_model, dialog_controller):
        settings = Qt.Window | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
        super(ListDialogView, self).__init__(None, settings)
        self.setAttribute(Qt.WA_TranslucentBackground)

        self._model = dialog_model
        self._dialog_ctrl = dialog_controller
        self._ui = Ui_ListDialog()
        self._ui.setupUi(self)

        delete_button_delegate = DeleteButtonDelegate(self)
        self._commodity_model = QStandardItemModel(0, 2, self._ui.commodity_list)
        for commodity in self._model:
            self._commodity_model.appendRow([QStandardItem(str(commodity)), QStandardItem()])

        """connect widgets to controller"""
        self._ui.button_add.clicked.connect(self.add_list_item)
        self._ui.commodity_list.clicked.connect(self.remove_list_item)
        self._ui.commodity_list.hover_index_changed.connect(delete_button_delegate.on_hover_index_changed)
        self.accepted.connect(self.on_dialog_accepted)
        self._ui.cancel_button.clicked.connect(self.reject)
        self._ui.apply_button.clicked.connect(self.accept)

        """initialize view"""
        self._ui.commodity_name.set_model(PropertyLineEdit(""))
        self._ui.commodity_list.setModel(self._commodity_model)
        self._ui.commodity_list.setItemDelegateForColumn(1, delete_button_delegate)
        self._ui.commodity_list.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
        self._ui.commodity_list.horizontalHeader().setSectionResizeMode(1, QHeaderView.Fixed)
        self._ui.commodity_list.setColumnWidth(1, 22)
예제 #12
0
    def make_filter_list(filter_id, rows):
        """
        make list with assigned value
        :param filter_id:
        :param rows:
        :return:
        """
        session = Session()
        filter_ = session.query(FilterF).get(filter_id)

        ready_valus = []
        for row in rows:
            flag = False
            row = [i.strip().lower() for i in row]
            for category in filter_.categorys:
                items = [[b.strip().lower() for b in a]
                         for a in category.items]
                if row in items:
                    #make QStandardItem to make column in sti model
                    item = QStandardItem(str(category.name))
                    ready_valus.append(item)
                    flag = True
            if flag is False:
                item = QStandardItem('')
                ready_valus.append(item)

        session.close()
        return ready_valus
예제 #13
0
    def add_init_data(self, data, data_length=3):
        '''添加数据到 table_view

        @参数说明: 
            data :要显示的数据
            data_length : 设置单元格的宽度

        @返回值: 
            无

        @注意: 
            无
        '''   
        self._data = data

        # 设计单元格宽度
        if (data_length == 2):
            self.table_view.horizontalHeader().setDefaultSectionSize(50)
        else:
            self.table_view.horizontalHeader().setDefaultSectionSize(120)

        for i in range(self.table_col):
            for j in range(self.table_row): 
                temp_date = QStandardItem(str(self._data[i, j]))
                # 设置单元格居中
                temp_date.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
                self.item_model.setItem(i, j, temp_date)    # 在单元格中添加数据
예제 #14
0
파일: sidebar.py 프로젝트: max-k/Liszt
 def __init__(self, name, rowid, idx):
     QStandardItem.__init__(self)
     self.itemType = 'LIST'
     self.name = name
     self.rowid = int(rowid)
     self.setText(f'#{rowid}  {name}')
     self.idx = int(idx)
예제 #15
0
 def add_preview_item(self, path, metadata):
     root = self.window.root_input.text()
     metadata = metadata.rewrite(self.rewrite_rules, root=root)
     metadata.add_tags(self.extra_tags)
     item1 = QStandardItem(metadata.name)
     item2 = QStandardItem(", ".join(metadata.get_tags()))
     item3 = QStandardItem(str(path))
     self.preview_model.appendRow([item1, item2, item3])
 def add_resources(self, resource_db_maps):
     for resource, db_map in resource_db_maps.items():
         if db_map in self._root_items:
             continue
         self._root_items[db_map] = root_item = QStandardItem(resource.label)
         filter_items = [QStandardItem("Scenario filter"), QStandardItem("Tool filter")]
         root_item.appendRows(filter_items)
         self.appendRow(root_item)
예제 #17
0
 def _update_check_state(self, item: QStandardItem):
     capabilities: ExportCapabilities = item.data(_CAPABILITIES_ROLE)
     if capabilities.is_selectable():
         new_state = item.checkState()
         self.blockSignals(True)
         for i in range(0, item.rowCount()):
             self._recursive_update_check_state(item.child(i), new_state)
         self.blockSignals(False)
예제 #18
0
 def load_translations(self):
     self._languages_model.clear()
     item = QStandardItem("Default")
     self._languages_model.appendRow(item)
     trans_dir = QDir(os.fspath(TRANSLATIONS_DIR))
     for filename in trans_dir.entryList(["*.qm"], QDir.Files, QDir.Name):
         language = re.search(r"i18n_(.*?)\.qm", filename).group(1)
         item = QStandardItem(language)
         self._languages_model.appendRow(item)
예제 #19
0
    def populate(self):
        for idx, folder in enumerate(self.getImageFolders()):
            item = QStandardItem(folder)
            item.setData(folder.replace('imgur', '').replace('reddit_sub', '').replace('_', ''), role=Qt.DisplayRole)
            item.setData(folder, role=Qt.DisplayRole)
            item.setData(os.path.join(ThemeManager.IMAGE_FOLDERS_PATH, folder), role=Qt.UserRole)
            item.setData(folder, role=Qt.UserRole+1)

            self.folderModel.appendRow(item)
예제 #20
0
    def update_pipeline_view(self):
        logging.debug(self.pipeline)
        model = self.pipelineView.model()
        model.clear()

        for t in range(self.pipeline.rowCount()):
            item = QStandardItem()
            item.setText(repr(self.pipeline.data(t)))
            model.appendRow(item)
예제 #21
0
 def __updateNodeView(self):
     nodes = self.singleItems(BezierNode)
     if len(nodes):
         self.ui.nodeDetails.setEnabled(True)
     else:
         return
     nodeColCount = 4
     self.nodeModel.clear()
     nodeHeaderList = [
         self._tr("MainWindow", 'ID'),
         self._tr("MainWindow", '边数'),
         self._tr("MainWindow", '坐标'),
         self._tr("MainWindow", '权重')
     ]
     if self.ui.actionDigraph_Mode.isChecked():
         nodeHeaderList.append(self._tr("MainWindow", '出度'))
         nodeHeaderList.append(self._tr("MainWindow", '入度'))
         nodeColCount += 2
     else:
         nodeHeaderList.append(self._tr("MainWindow", "度"))
         nodeColCount += 1
     self.nodeModel.setHorizontalHeaderLabels(nodeHeaderList)
     self.nodeModel.setRowCount(len(nodes))
     self.nodeSelectionModel.currentChanged.connect(self.do_curNodeChanged)
     self.ui.nodeDetails.setModel(self.nodeModel)
     self.ui.nodeDetails.setSelectionModel(self.nodeSelectionModel)
     self.ui.nodeDetails.verticalHeader().setSectionResizeMode(
         QHeaderView.Fixed)
     self.ui.nodeDetails.horizontalHeader().setSectionResizeMode(
         QHeaderView.ResizeToContents)
     self.ui.nodeDetails.setAlternatingRowColors(True)
     self.ui.nodeDetails.setItemDelegateForColumn(3, self.spinWeight)
     nodes.reverse()
     for i in range(len(nodes)):
         node: BezierNode = nodes[i]
         strList = [
             f"V{node.data(self.__ItemId)}",
             str(len(node.bezierEdges)),
             f"x:{node.pos().x()},y:{node.pos().y()}",
             str(node.weight())
         ]
         if self.ui.actionDigraph_Mode.isChecked():
             strList.append(
                 f'{node.degrees(self.ui.actionDigraph_Mode.isChecked())[1]}'
             )
             strList.append(
                 f'{node.degrees(self.ui.actionDigraph_Mode.isChecked())[0]}'
             )
         else:
             strList.append(
                 f'{node.degrees(self.ui.actionDigraph_Mode.isChecked())}')
         for j in range(nodeColCount):
             item = QStandardItem(strList[j])
             if j != 3:
                 item.setFlags(self.__lastColumnFlag)
             self.nodeModel.setItem(i, j, item)
예제 #22
0
    def __init__(self, widgetModel, parent=None):
        super(FilesViewModel, self).__init__(parent)

        self.setHorizontalHeaderItem(0, QStandardItem(self.NAME))
        self.setHorizontalHeaderItem(1, QStandardItem(self.DATE_MODIFIED))
        self.setHorizontalHeaderItem(2, QStandardItem(self.SIZE))
        self.setHorizontalHeaderItem(3, QStandardItem(self.TYPE))

        self._widgetModel = widgetModel
        self.populateList()
예제 #23
0
 def set_metadata(self, metadata):
     self.metadata = metadata
     if metadata:
         self.model.setRowCount(len(self.metadata))
         for i, key in enumerate(sorted(metadata)):
             fmt_key, fmt_value = metadata.get_formatted(key)
             self.model.setItem(i, 0, QStandardItem(fmt_key))
             self.model.setItem(i, 1, QStandardItem(fmt_value))
     else:
         self.model.setRowCount(0)
예제 #24
0
 def OpenImages(self):
     self.cacheDir = ''
     fileList = QFileDialog.getOpenFileNames(self, "Load Files", '../')
     self.model = QStandardItemModel()
     for name in fileList[0]:
         item = QStandardItem(os.path.basename(name))  #QIcon(name),
         item.setData(name)
         item2 = QStandardItem('NULL')
         self.model.appendRow([item, item2])
     self.ui.tableView.setModel(self.model)
예제 #25
0
    def _on_uncheck(self, item: QStandardItem):
        """
        Handles unchecking an item.

        Args:
            item: Item unchecked
        """
        item.setCheckState(Qt.Unchecked)
        assert item.text() in self.checked_items
        self.checked_items.remove(item.text())
예제 #26
0
    def _on_check(self, item: QStandardItem):
        """
        Handles checking an item.

        Args:
            item: Item checked
        """
        item.setCheckState(Qt.Checked)
        assert item.text() not in self.checked_items
        self.checked_items.append(item.text())
예제 #27
0
 def __init__(self, metadata_view):
     QObject.__init__(self)
     self.view = metadata_view
     self.metadata = None
     self.model = QStandardItemModel(1, 2)
     self.model.setHorizontalHeaderItem(0, QStandardItem("Key"))
     self.model.setHorizontalHeaderItem(1, QStandardItem("Value"))
     self.view.setModel(self.model)
     self.view.sortByColumn(0, Qt.AscendingOrder)
     self.view.setSortingEnabled(False)
 def _add_morpheme(self, tree: QtGui.QStandardItem, morpheme: Morpheme):
     text_item = MorphemeTextItem(morpheme)
     gloss_item = MorphemeGlossItem(morpheme)
     self.morpheme_text_items.update({morpheme.dict_id: text_item})
     self.morpheme_gloss_items.update({morpheme.dict_id: gloss_item})
     tree.appendRow([
         text_item,
         gloss_item,
         RemoveButton(morpheme),
     ])
 def populate_outputfiles_list(self, items):
     """List output files in QTreeView.
     If items is None or empty list, model is cleared.
     """
     self.outputfiles_model.clear()
     self.outputfiles_model.setHorizontalHeaderItem(0, QStandardItem("Output files"))  # Add header
     if items is not None:
         for item in items:
             qitem = QStandardItem(item)
             qitem.setData(QFileIconProvider().icon(QFileInfo(item)), Qt.DecorationRole)
             self.outputfiles_model.appendRow(qitem)
예제 #30
0
    def _update_file_picker_list(self, file_names):
        model = self.file_list.model()

        # Update File Picker list from files[]
        model.clear()
        for f in range(self.file_sequence.rowCount()):
            item = QStandardItem()
            item.setText(file_names[f])
            model.appendRow(item)

        self.log_file_sequence_status()