예제 #1
0
 def append_blue_data(self, data):
     """ DOCSTRING """
     self.clear_blue_list.emit()
     i = 1
     for i in data:
         if self.current_lang == "Polski":
             item = QListWidgetItem('Nazwa: ' + str(i) + ' \nMAC: ' +
                                    str(data[i][0].upper()) + ' \nRSSI: ' +
                                    str(data[i][1]) + ' dBm\nProducent: ' +
                                    str(
                                        manu.search_manufacturer_by_mac(
                                            str(data[i][0].upper()))) + '')
         else:
             item = QListWidgetItem('Name: ' + str(i) + ' \nMAC: ' +
                                    str(data[i][0].upper()) + ' \nRSSI: ' +
                                    str(data[i][1]) +
                                    ' dBm\nManufacturer: ' + str(
                                        manu.search_manufacturer_by_mac(
                                            str(data[i][0].upper()))) + '')
         if int(abs(data[i][1])) < 50:
             item.setIcon(QIcon('icons/icons8-no-connection-64-green.png'))
         elif int(abs(data[i][1])) >= 50 and int(abs(data[i][1])) < 70:
             item.setIcon(QIcon('icons/icons8-no-connection-64-blue.png'))
         elif int(abs(data[i][1])) >= 70 and int(abs(data[i][1])) < 80:
             item.setIcon(QIcon('icons/icons8-no-connection-64-orange.png'))
         elif int(abs(data[i][1])) >= 80 and int(abs(data[i][1])) < 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-red.png'))
         elif int(abs(data[i][1])) >= 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-black.png'))
         self.append_blue_list_item.emit(item)
         self.loop = QEventLoop()
         QTimer.singleShot(50, self.loop.quit)
         self.loop.exec_()
예제 #2
0
 def addItems(self, items, checked=False):
     for i in items:
         item = QListWidgetItem(i, parent=self)
         self.addItem(item)
         state = Qt.Checked if checked else Qt.Unchecked
         item.setCheckState(state)
예제 #3
0
 def update_meshes_list(self):
     self.ui.lwMeshes.clear()
     for name in self.node.meshes_names:
         self.ui.lwMeshes.addItem(QListWidgetItem(name))
예제 #4
0
 def redraw_timers(self):
     self.listTimers.clear()
     for timer in self.timers.timers:
         cboItem = QListWidgetItem(timer.format_str(), self.listTimers)
         cboItem.setData(Qt.UserRole, timer.name)
예제 #5
0
    def __init__(self, alid=0, db=0, mode=0):
        super().__init__()
        self.font = mainfont
        self.resize(1000, 600)
        layout = QGridLayout()
        self.layout = layout
        self.buttext = []
        self.dictViewer = QWidget()

        self.linedits = {}
        self.last_eid = 0
        self.photo_ids = 0
        self.QLABELM_TYPE = type(QLabelM())

        self.listWidget = QListWidget()
        self.listWidget.itemDoubleClicked.connect(self.doubleClick)
        self.listWidget.itemSelectionChanged.connect(self.itemChanged)

        self.setFont(mainfont)
        self.db = db
        self.alid = alid
        self.event_ids = db.get_all_event_ids(self.alid)
        self.photo_gallery = QLabel()
        #self.photo_gallery.setAlignment(Qt.AlignCenter)
        #self.photo_gallery.setPixmap(QPixmap('f.png').scaled(400,400,Qt.KeepAspectRatio))
        print(self.event_ids)
        if self.event_ids:
            for eid in self.event_ids:
                event = db.get_event_data(self.alid, eid)
                print(event)
                if event:
                    text = ''
                    text = event['event_head'] if type(event) == type(
                        {}) and 'event_head' in event.keys(
                        ) and event['event_head'] != '' else text
                    item = QListWidgetItem(text)
                    if type(event) == type({}) and 'eid' in event.keys():
                        item.setWhatsThis(str(event['eid']))
                    self.listWidget.addItem(item)
            if self.listWidget.count():
                self.listWidget.setCurrentRow(0)

        self.mode = mode

        def openMenu(position):
            # Создание PopupMenu
            menu = QMenu()
            if mode > 0:
                addAction = menu.addAction('Добавить событие')
                #menu.addSeparator()
                editAction = menu.addAction('Переименовать событие')
                #menu.addSeparator()
                delAction = menu.addAction('Удалить событие')
                delAllAction = menu.addAction('Удалить все события')
                menu.addSeparator()
            else:
                addAction, editAction, delAction, delAllAction = QAction(
                ), QAction(), QAction(), QAction()
            quitAction = menu.addAction('Выход')
            action = menu.exec_(self.mapToGlobal(position))

            # Привязка событий к Actions
            if action == addAction:
                text, ok = QInputDialog().getText(self, "Название события",
                                                  "Ввкдите название события:",
                                                  QLineEdit.Normal, '')
                if ok:
                    text = 'Новое событие' if text == '' else text
                    res = self.db.add_event({
                        'alid': self.alid,
                        'event_head': text
                    })
                    if len(res) == 1:
                        event = res[0]
                        text = event['event_head'] if type(event) == type(
                            {}
                        ) and 'event_head' in event.keys(
                        ) and event['event_head'] != '' else 'Новое событие'
                        item = QListWidgetItem(text)
                        item.setWhatsThis(str(event['eid']))
                        self.listWidget.addItem(item)
                        db.events.save()
                        #self.changed = True
                self.event_ids = db.get_all_event_ids(self.alid)

            if action == editAction:
                eid = self.listWidget.currentItem()
                if eid is not None:
                    eid = self.listWidget.currentItem().whatsThis()
                    last_name = self.db.get_event_data(self.alid,
                                                       eid)['event_head']
                    text, ok = QInputDialog().getText(
                        self, "Название события",
                        "Ввкдите новое название события:", QLineEdit.Normal,
                        str(last_name))
                    if ok:
                        event = self.db.edit_event({
                            'alid': self.alid,
                            'eid': eid,
                            'event_head': text
                        })
                        self.listWidget.currentItem().setText(text)
                        self.db.events.save()
                        if event:
                            event = self.db.get_event_data(alid, eid)
                            #b = layout.takeAt(1)
                            self.dictViewer.close()
                            #b.widget().deleteLater()
                            self.dictViewer = DictViewer(
                                event, 1, self.db.events.invizible_fields,
                                self.db.events.editable_fields)
                            self.layout.addWidget(self.dictViewer, 0, 2)
                    self.event_ids = db.get_all_event_ids(self.alid)

            if action == delAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить событие?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    eid = self.listWidget.currentItem()
                    if eid is not None:
                        eid = self.listWidget.currentItem().whatsThis()
                        self.db.del_event({'alid': self.alid, 'eid': eid})
                        self.listWidget.takeItem(self.listWidget.currentRow())
                        self.db.events.save()
                        #self.changed = True
                    self.event_ids = db.get_all_event_ids(self.alid)

            if action == delAllAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить все события?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    if self.db.del_all_events(int(self.alid)):
                        self.listWidget.clear()
                        self.db.events.save()
                        #self.changed = True
                    self.event_ids = db.get_all_event_ids(self.alid)

                    #db.photos.save()

            if action == quitAction:
                self.accept()

        self.listWidget.setContextMenuPolicy(Qt.CustomContextMenu)
        self.listWidget.customContextMenuRequested.connect(openMenu)

        layout.addWidget(self.listWidget, 0, 0, 1, 1)
        layout.addWidget(self.photo_gallery, 0, 1, 1, 1)

        self.setLayout(layout)
예제 #6
0
 def internal(item: QListWidgetItem):
     idx = self.__get_item_idx(self._instance.currentItem())
     callback(idx, item.text())
예제 #7
0
    def create_item(self, name, icon):
        """Create a standard list widget item, for option panel.

        Args:
          name: Name of option button
          icon: Icon name of option button
        Returns:
          item: created option button
        """
        item = QListWidgetItem(self)
        item.setText(name)
        item.setIcon(QIcon(icon))
        item.setStatusTip(name)
        item.setSizeHint(QSize(75, 70))
        item.setTextAlignment(Qt.AlignCenter)
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)

        return item
예제 #8
0
 def nextFile(self):
     print('nextFile PRESSED')
     filename = QFileDialog.getOpenFileName(self, "Choix Film")
     item = QListWidgetItem(filename[0])
     self.ui.file_list.addItem(item)
예제 #9
0
    def __init__(self, pid=0, db=0, mode=0):
        super().__init__()
        self.font = mainfont
        self.resize(500, self.height())
        layout = QGridLayout()
        self.layout = layout
        self.buttext = []
        self.last_alid = 0

        self.listWidget = QListWidget()
        self.listWidget.itemDoubleClicked.connect(self.doubleClick)
        self.listWidget.itemSelectionChanged.connect(self.itemChanged)

        self.dictAlbum = QWidget()
        self.DICTVIEWERTYPE = type(DictViewer())
        self.setFont(mainfont)
        self.db = db
        self.pid = pid
        self.album_ids = db.get_all_albums_ids()
        print(self.album_ids)
        if self.album_ids:
            for alid in self.album_ids:
                album = db.get_album_data(alid)
                print(album)
                self.dictAlbum = DictViewer(album, 1,
                                            self.db.albums.invizible_fields,
                                            self.db.albums.editable_fields)

                if album:
                    text = ''
                    text = album['title'] if type(album) == type(
                        {}) and 'title' in album.keys(
                        ) and album['title'] != '' else text
                    item = QListWidgetItem(text)
                    if type(album) == type({}) and 'alid' in album.keys():
                        item.setWhatsThis(str(album['alid']))
                    self.listWidget.addItem(item)
            self.listWidget.setCurrentRow(0)
        self.mode = mode

        def openMenu(position):
            # Создание PopupMenu
            menu = QMenu()
            openAction = menu.addAction('Открыть альбом')
            openEAction = menu.addAction('Открыть события')
            menu.addSeparator()
            if mode > 0:
                #importAction = menu.addAction('Выгрузить альбом')
                exportAction = menu.addAction('Добавить альбом')
                renameAction = menu.addAction('Переименовать альбом')
                #menu.addSeparator()
                #editAction = menu.addAction('Заменить')
                menu.addSeparator()
                delAction = menu.addAction('Удалить альбом')
                delAllAction = menu.addAction('Удалить все альбомы')
                menu.addSeparator()
            else:
                exportAction, delAction, delAllAction = QAction(), QAction(
                ), QAction()
            quitAction = menu.addAction('Выход')
            action = menu.exec_(self.mapToGlobal(position))

            # Привязка событий к Actions
            if action == openAction:
                self.doubleClick(self.listWidget.currentItem())

            if action == openEAction:
                item = self.listWidget.currentItem()
                if item is not None:
                    alid = item.whatsThis()
                    self.events = EventViewer(int(alid), db, 1)
                    self.events.show()

            if action == exportAction:
                text, ok = QInputDialog().getText(self, "Название альбома",
                                                  "Ввкдите название альбома:",
                                                  QLineEdit.Normal, 'Альбом')
                if ok:
                    res = self.db.add_album({'imid': -1, 'title': text})
                    if len(res) == 1:
                        album = res[0]
                        item = QListWidgetItem(text)
                        item.setWhatsThis(str(album['alid']))
                        self.listWidget.addItem(item)
                self.album_ids = db.get_all_albums_ids()

            if action == renameAction:
                item = self.listWidget.currentItem()
                if item is not None:
                    alid = item.whatsThis()
                    album = db.get_album_data(alid)
                    text, ok = QInputDialog().getText(
                        self, "Название альбома", "Ввкдите название альбома:",
                        QLineEdit.Normal, album['title'])
                    if ok:
                        album = db.edit_album({
                            'alid': int(alid),
                            'imid': -1,
                            'title': text
                        })
                        item.setText(text)
                        if album:
                            album = self.db.get_album_data(alid)
                            # b = layout.takeAt(1)
                            # self.dictAlbum.close()
                            # b.widget().deleteLater()
                            self.dictAlbum = DictViewer(
                                album, 1, self.db.albums.invizible_fields,
                                self.db.albums.editable_fields)
                            self.layout.addWidget(self.dictAlbum, 0, 1)
                        self.album_ids = db.get_all_albums_ids()

            if action == delAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить альбом?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    self.delete_item()

            if action == delAllAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить все альбомы?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    item = self.listWidget.currentItem()
                    while item is not None:
                        self.delete_item()
                        item = self.listWidget.currentItem()

                    self.album_ids = db.get_all_albums_ids()

            if action == quitAction:
                self.accept()

        self.setContextMenuPolicy(Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(openMenu)

        layout.addWidget(self.listWidget, 0, 0)
        layout.addWidget(self.dictAlbum, 0, 1)

        self.setLayout(layout)
예제 #10
0
 def _add_character_to_list(target_list: QListWidget,
                            character: PropertyContainer):
     item = QListWidgetItem()
     item.setText(character.get_display_name())
     item.setData(QtCore.Qt.UserRole, character)
     target_list.addItem(item)
예제 #11
0
파일: main.py 프로젝트: cmaureir/deita
 def fill_main_item_list(self):
     for i in range(10):
         item = QListWidgetItem("Menu {}".format(i))
         item.setSizeHint(QSize(item.sizeHint().width(), 50))
         self.item_list.addItem(item)
예제 #12
0
파일: browser.py 프로젝트: libreblog/cells
 def addTemplate(self, template):
     item = QListWidgetItem()
     view = Item(template, self.subject)
     item.setSizeHint(view.sizeHint())
     self.addItem(item)
     self.setItemWidget(item, view)
예제 #13
0
 def create_list(self):
   path_list = self.ui.hdf5_paths
   path_list.clear()
   for i in range(len(self.paths)):
     path = QListWidgetItem(self.paths[i], path_list)
     path_list.addItem(path)
예제 #14
0
    def selection_changed(self):
        if not splash.isHidden():
            splash.showMessage(f"Finishing (2/3) - Loading first app..",
                               color=splash_color)
        try:
            # app_name = self.ui.listAppsWidget.currentItem().text()
            data = self.ui.listAppsWidget.currentItem().data(Qt.UserRole)
            app_name = data[0]
        except Exception:
            app_name = None
        if app_name is not None:
            # Set active tab to first
            self.ui.tabMetadata.setCurrentIndex(0)

            # Hide icon
            self.ui.HomebrewIconLabel.hide()

            # Clear supported controllers listview:
            self.ui.SupportedControllersListWidget.clear()

            # Set data
            data = self.ui.listAppsWidget.currentItem().data(Qt.UserRole)

            # -- Get actual metadata
            # App Name
            self.ui.appname.setText(data[1])
            self.ui.SelectionInfoBox.setTitle("Metadata: " + data[1])
            self.ui.label_displayname.setText(data[1])

            # File Size
            try:
                self.ui.filesize.setText(metadata.file_size(data[2]))
            except KeyError:
                self.ui.filesize.setText("Unknown")

            # Category
            self.ui.HomebrewCategoryLabel.setText(
                metadata.category_display_name(data[3]))

            # Release Date
            self.ui.releasedate.setText(
                datetime.fromtimestamp(int(
                    data[4])).strftime('%B %e, %Y at %R'))

            # Controllers
            controllers = metadata.parse_controllers(data[5])
            # Add icons for Wii Remotes
            if controllers[0] > 1:
                item = QListWidgetItem()
                item.setText(f"{str(controllers[0])} Wii Remotes")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/{str(controllers[0])}WiiRemote.png"
                        )))
                item.setToolTip(
                    f"This app supports up to {str(controllers[0])} Wii Remotes."
                )
                self.ui.SupportedControllersListWidget.addItem(item)
            elif controllers[0] == 1:
                item = QListWidgetItem()
                item.setText(f"1 Wii Remote")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/1WiiRemote.png")))
                item.setToolTip("This app supports a single Wii Remote.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[1] is True:
                item = QListWidgetItem()
                item.setText(f"Nunchuk")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/Nunchuk.png")))
                item.setToolTip("This app can be used with a Nunchuk.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[2] is True:
                item = QListWidgetItem()
                item.setText(f"Classic Controller")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/ClassicController.png"
                        )))
                item.setToolTip(
                    "This app can be used with a Classic Controller.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[3] is True:
                item = QListWidgetItem()
                item.setText(f"GameCube Controller")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/GamecubeController.png"
                        )))
                item.setToolTip(
                    "This app can be used with a Gamecube Controller.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[4] is True:
                item = QListWidgetItem()
                item.setText(f"Wii Zapper")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/WiiZapper.png")))
                item.setToolTip("This app can be used with a Wii Zapper.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[5] is True:
                item = QListWidgetItem()
                item.setText(f"USB Keyboard")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/USBKeyboard.png")))
                item.setToolTip("This app can be used with a USB Keyboard.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[6] is True:
                item = QListWidgetItem()
                item.setText(f"SDHC Card")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/SDHC.png")))
                item.setToolTip("This app is confirmed to support SDHC cards.")
                self.ui.SupportedControllersListWidget.addItem(item)

            # Version
            self.ui.version.setText(data[6])

            # Coder
            self.ui.developer.setText(data[7])

            # Short Description
            if data[8] == "":
                self.ui.label_description.setText("No description specified.")
            else:
                self.ui.label_description.setText(data[8])

            # Long Description
            self.ui.longDescriptionBrowser.setText(data[9])

            # File Name Line Edit
            self.ui.FileNameLineEdit.setText(app_name + ".zip")
            self.ui.DirectLinkLineEdit.setText(
                metadata.url(app_name, repo=HOST))
        self.ui.progressBar.setValue(0)
        self.repaint()
        # Load icon
        self.load_icon(app_name=app_name, repo=HOST)
        self.status_message("Ready to download")
 def add_list_widget_item(self, spent_category : SpentCategory):
     item = QListWidgetItem()
     item.setText(spent_category.name)
     self.ui.lw_spent_categories_list.addItem(item)
     self.enable_widgets()        
     self.ui.lw_spent_categories_list.setCurrentRow(self.ui.lw_spent_categories_list.count() - 1)
예제 #16
0
        def openMenu(position):
            # Создание PopupMenu
            menu = QMenu()
            openAction = menu.addAction('Открыть альбом')
            openEAction = menu.addAction('Открыть события')
            menu.addSeparator()
            if mode > 0:
                #importAction = menu.addAction('Выгрузить альбом')
                exportAction = menu.addAction('Добавить альбом')
                renameAction = menu.addAction('Переименовать альбом')
                #menu.addSeparator()
                #editAction = menu.addAction('Заменить')
                menu.addSeparator()
                delAction = menu.addAction('Удалить альбом')
                delAllAction = menu.addAction('Удалить все альбомы')
                menu.addSeparator()
            else:
                exportAction, delAction, delAllAction = QAction(), QAction(
                ), QAction()
            quitAction = menu.addAction('Выход')
            action = menu.exec_(self.mapToGlobal(position))

            # Привязка событий к Actions
            if action == openAction:
                self.doubleClick(self.listWidget.currentItem())

            if action == openEAction:
                item = self.listWidget.currentItem()
                if item is not None:
                    alid = item.whatsThis()
                    self.events = EventViewer(int(alid), db, 1)
                    self.events.show()

            if action == exportAction:
                text, ok = QInputDialog().getText(self, "Название альбома",
                                                  "Ввкдите название альбома:",
                                                  QLineEdit.Normal, 'Альбом')
                if ok:
                    res = self.db.add_album({'imid': -1, 'title': text})
                    if len(res) == 1:
                        album = res[0]
                        item = QListWidgetItem(text)
                        item.setWhatsThis(str(album['alid']))
                        self.listWidget.addItem(item)
                self.album_ids = db.get_all_albums_ids()

            if action == renameAction:
                item = self.listWidget.currentItem()
                if item is not None:
                    alid = item.whatsThis()
                    album = db.get_album_data(alid)
                    text, ok = QInputDialog().getText(
                        self, "Название альбома", "Ввкдите название альбома:",
                        QLineEdit.Normal, album['title'])
                    if ok:
                        album = db.edit_album({
                            'alid': int(alid),
                            'imid': -1,
                            'title': text
                        })
                        item.setText(text)
                        if album:
                            album = self.db.get_album_data(alid)
                            # b = layout.takeAt(1)
                            # self.dictAlbum.close()
                            # b.widget().deleteLater()
                            self.dictAlbum = DictViewer(
                                album, 1, self.db.albums.invizible_fields,
                                self.db.albums.editable_fields)
                            self.layout.addWidget(self.dictAlbum, 0, 1)
                        self.album_ids = db.get_all_albums_ids()

            if action == delAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить альбом?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    self.delete_item()

            if action == delAllAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить все альбомы?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    item = self.listWidget.currentItem()
                    while item is not None:
                        self.delete_item()
                        item = self.listWidget.currentItem()

                    self.album_ids = db.get_all_albums_ids()

            if action == quitAction:
                self.accept()
예제 #17
0
 def add_item(self, item: str, is_editable=True):
     self.__items.append(QListWidgetItem(item, self._instance))
     if is_editable:
         self.__items[-1].setFlags(self.__items[-1].flags()
                                   | Qt.ItemIsEditable)
     self._instance.addItem(self.__items[-1])
예제 #18
0
 def initDevices(self):
     for device in self.devices:
         newItem = QListWidgetItem()
         newItem.setText(device.name + " (" + device.address + ")")
         self.listWidget.addItem(newItem)
예제 #19
0
import sys

from PySide2.QtWidgets import QApplication, QListWidget, QListWidgetItem
from PySide2.QtCore import Qt

if __name__ == '__main__':
    app = QApplication(sys.argv)

    lw = QListWidget()
    for i in range(5):
        text = f'Item {i}'
        item = QListWidgetItem(text)
        item.setCheckState(Qt.Unchecked)
        lw.addItem(item)
    lw.setDragDropMode(lw.InternalMove)
    lw.show()
    sys.exit(app.exec_())
예제 #20
0
    def AddItem(self, name):
        item = QListWidgetItem(name)
        item.setTextAlignment(Qt.AlignCenter)
        # item.setBackground(QColor(87, 195, 194))
        item.setBackground(QColor(0, 0, 0, 0))
        item.setSizeHint(QSize(90, 30))
        item.setFlags(item.flags() & (~Qt.ItemIsSelectable))

        self.addItem(item)
예제 #21
0
def write_to_file_CV(ui, CV, CV_window, AP_params):
    """
    This function is connect to save file button.

    Parameters
    ------
    CV : the Ui_CV object

    CV_window: the CV QMainWindow object

    AP_parameters: list that contains the advanced parameters

    """
    config_params = get_parameters(CV, 'CV', AP_params)
    data_out_name = config_params[3]
    data_out_path = config_params[4]
    filename_list = os.listdir(data_out_path)
    config_writer_CV(*config_params)
    filename = os.path.join(data_out_path, data_out_name + "_CV_config.yml")
    filename_parse = filename.split('/')[-1].strip()
    # list all the filename in the experiment queue, stored in queue_filename
    queue_filename = []
    for x in range(ui.experiment_queue.count()):
        queue_filename.append(
            ui.experiment_queue.item(x).data(2).split('.yml')[0] + '.yml')

    if filename_parse in filename_list:
        if warning('The filename exists. Do you want to overwrite it?'):
            CV_window.close()
            if filename_parse not in queue_filename:
                item = QListWidgetItem()
                icon = QIcon("../pics/icon_cv.ico")
                item.setData(1, icon)
                item.setData(2, filename_parse)
                item.setData(3, filename)
                ui.experiment_queue.addItem(item)
                return
            else:
                return
        else:
            return
    if warning('The file is saved. Do you want to exit the window?'):
        CV_window.close()
        item = QListWidgetItem()
        icon = QIcon("../pics/icon_cv.ico")
        item.setData(1, icon)
        item.setData(2, filename_parse)
        item.setData(3, filename)
        ui.experiment_queue.addItem(item)
예제 #22
0
    def selectTally(self, tally_label=None):
        # using active view to populate tally options live
        av = self.model.activeView

        # reset form layout
        for i in reversed(range(self.tallySelectorLayout.count())):
            self.tallySelectorLayout.itemAt(i).widget().setParent(None)

        # always re-add the tally selector to the layout
        self.tallySelectorLayout.addRow(self.tallySelector)
        self.tallySelectorLayout.addRow(HorizontalLine())

        if tally_label is None or tally_label == "None" or tally_label == "":
            av.selectedTally = None
            self.score_map = None
            self.nuclide_map = None
            self.filter_map = None
            av.tallyValue = "Mean"
        else:
            # get the tally
            tally = self.model.statepoint.tallies[av.selectedTally]

            # populate filters
            filter_types = {type(f) for f in tally.filters}
            spatial_filters = bool(filter_types.intersection(_SPATIAL_FILTERS))

            if not spatial_filters:
                self.filter_description = QLabel("(No Spatial Filters)")
                self.tallySelectorLayout.addRow(self.filter_description)

            self._createFilterTree(spatial_filters)

            self.tallySelectorLayout.addRow(self.treeExpander)
            self.tallySelectorLayout.addRow(HorizontalLine())

            # value selection
            self.tallySelectorLayout.addRow(QLabel("Value:"))
            self.valueBox = QComboBox(self)
            self.values = tuple(_TALLY_VALUES.keys())
            for value in self.values:
                self.valueBox.addItem(value)
            self.tallySelectorLayout.addRow(self.valueBox)
            self.valueBox.currentTextChanged[str].connect(
                self.main_window.editTallyValue)
            self.updateTallyValue()

            if not spatial_filters:
                self.valueBox.setEnabled(False)
                self.valueBox.setToolTip(
                    "Only tallies with spatial filters are viewable.")

            # scores
            self.score_map = {}
            self.scoresListWidget.itemClicked.connect(
                self.main_window.updateScores)
            self.score_map.clear()
            self.scoresListWidget.clear()

            sorted_scores = sorted(tally.scores)
            # always put total first if present
            if 'total' in sorted_scores:
                idx = sorted_scores.index('total')
                sorted_scores.insert(0, sorted_scores.pop(idx))

            for score in sorted_scores:
                ql = QListWidgetItem()
                ql.setText(score.capitalize())
                ql.setCheckState(QtCore.Qt.Unchecked)
                if not spatial_filters:
                    ql.setFlags(QtCore.Qt.ItemIsUserCheckable)
                else:
                    ql.setFlags(ql.flags() | QtCore.Qt.ItemIsUserCheckable)
                    ql.setFlags(ql.flags() & ~QtCore.Qt.ItemIsSelectable)
                self.score_map[score] = ql
                self.scoresListWidget.addItem(ql)

            # select the first score item by default
            for item in self.score_map.values():
                item.setCheckState(QtCore.Qt.Checked)
                break
            self.updateScores()

            self.scoresGroupBoxLayout = QVBoxLayout()
            self.scoresGroupBoxLayout.addWidget(self.scoresListWidget)
            self.scoresGroupBox = Expander("Scores:",
                                           layout=self.scoresGroupBoxLayout)
            self.tallySelectorLayout.addRow(self.scoresGroupBox)

            # nuclides
            self.nuclide_map = {}
            self.nuclidesListWidget.itemClicked.connect(
                self.main_window.updateNuclides)
            self.nuclide_map.clear()
            self.nuclidesListWidget.clear()

            sorted_nuclides = sorted(tally.nuclides)
            # always put total at the top
            if 'total' in sorted_nuclides:
                idx = sorted_nuclides.index('total')
                sorted_nuclides.insert(0, sorted_nuclides.pop(idx))

            for nuclide in sorted_nuclides:
                ql = QListWidgetItem()
                ql.setText(nuclide.capitalize())
                ql.setCheckState(QtCore.Qt.Unchecked)
                if not spatial_filters:
                    ql.setFlags(QtCore.Qt.ItemIsUserCheckable)
                else:
                    ql.setFlags(ql.flags() | QtCore.Qt.ItemIsUserCheckable)
                    ql.setFlags(ql.flags() & ~QtCore.Qt.ItemIsSelectable)
                self.nuclide_map[nuclide] = ql
                self.nuclidesListWidget.addItem(ql)

            # select the first nuclide item by default
            for item in self.nuclide_map.values():
                item.setCheckState(QtCore.Qt.Checked)
                break
            self.updateNuclides()

            self.nuclidesGroupBoxLayout = QVBoxLayout()
            self.nuclidesGroupBoxLayout.addWidget(self.nuclidesListWidget)
            self.nuclidesGroupBox = Expander(
                "Nuclides:", layout=self.nuclidesGroupBoxLayout)
            self.tallySelectorLayout.addRow(self.nuclidesGroupBox)
예제 #23
0
 def run(self):
     # next() raises a StopIteration exception when the generator ends.
     # If this exception is unhandled by run(), it causes thread termination.
     # If wdg internal C++ object was destroyed by main thread (form closing)
     # a RuntimeError exception is raised and causes thread termination too.
     # Thus, no further synchronization is needed.
     from bLUeTop import exiftool
     with exiftool.ExifTool() as e:
         while True:
             try:
                 filename = next(self.fileListGen)
                 # get orientation
                 try:
                     # read metadata from sidecar (.mie) if it exists, otherwise from image file.
                     profile, metadata = e.get_metadata(
                         filename,
                         tags=("colorspace", "profileDescription",
                               "orientation", "model", "rating",
                               "FileCreateDate"),
                         createsidecar=False)
                 except ValueError:
                     metadata = {}
                 # get image info
                 tmp = [
                     value for key, value in metadata.items()
                     if 'orientation' in key.lower()
                 ]
                 orientation = tmp[
                     0] if tmp else 1  # metadata.get("EXIF:Orientation", 1)
                 # EXIF:DateTimeOriginal seems to be missing in many files
                 tmp = [
                     value for key, value in metadata.items()
                     if 'date' in key.lower()
                 ]
                 date = tmp[
                     0] if tmp else ''  # metadata.get("EXIF:ModifyDate", '')
                 tmp = [
                     value for key, value in metadata.items()
                     if 'rating' in key.lower()
                 ]
                 rating = tmp[
                     0] if tmp else 0  # metadata.get("XMP:Rating", 5)
                 rating = ''.join(['*'] * int(rating))
                 transformation = exiftool.decodeExifOrientation(
                     orientation)
                 # get thumbnail
                 img = e.get_thumbNail(filename, thumbname='thumbnailimage')
                 # no thumbnail found : try preview
                 if img.isNull():
                     img = e.get_thumbNail(
                         filename, thumbname='PreviewImage'
                     )  # the order is important : for jpeg PreviewImage is full sized !
                 # all failed : open image
                 if img.isNull():
                     img = QImage(filename)
                 # remove possible black borders, except for .NEF
                 if filename[-3:] not in ['nef', 'NEF']:
                     bBorder = 7
                     img = img.copy(
                         QRect(0, bBorder, img.width(),
                               img.height() - 2 * bBorder))
                 pxm = QPixmap.fromImage(img)
                 if not transformation.isIdentity():
                     pxm = pxm.transformed(transformation)
                 # set item caption and tooltip
                 item = QListWidgetItem(
                     QIcon(pxm), basename(filename))  # + '\n' + rating)
                 item.setToolTip(
                     basename(filename) + ' ' + date + ' ' + rating)
                 # set item mimeData to get filename=item.data(Qt.UserRole)[0] transformation=item.data(Qt.UserRole)[1]
                 item.setData(Qt.UserRole, (filename, transformation))
                 self.wdg.addItem(item)
             # for clean exiting we catch all exceptions and force break
             except OSError:
                 continue
             except:
                 break
예제 #24
0
 def addattr_handler(self):
     text = self.attr.text()
     if text != "":
         self.attr.clear()
         self.to_attrs.addItem(QListWidgetItem(text))
예제 #25
0
        def openMenu(position):
            # Создание PopupMenu
            menu = QMenu()
            if mode > 0:
                addAction = menu.addAction('Добавить событие')
                #menu.addSeparator()
                editAction = menu.addAction('Переименовать событие')
                #menu.addSeparator()
                delAction = menu.addAction('Удалить событие')
                delAllAction = menu.addAction('Удалить все события')
                menu.addSeparator()
            else:
                addAction, editAction, delAction, delAllAction = QAction(
                ), QAction(), QAction(), QAction()
            quitAction = menu.addAction('Выход')
            action = menu.exec_(self.mapToGlobal(position))

            # Привязка событий к Actions
            if action == addAction:
                text, ok = QInputDialog().getText(self, "Название события",
                                                  "Ввкдите название события:",
                                                  QLineEdit.Normal, '')
                if ok:
                    text = 'Новое событие' if text == '' else text
                    res = self.db.add_event({
                        'alid': self.alid,
                        'event_head': text
                    })
                    if len(res) == 1:
                        event = res[0]
                        text = event['event_head'] if type(event) == type(
                            {}
                        ) and 'event_head' in event.keys(
                        ) and event['event_head'] != '' else 'Новое событие'
                        item = QListWidgetItem(text)
                        item.setWhatsThis(str(event['eid']))
                        self.listWidget.addItem(item)
                        db.events.save()
                        #self.changed = True
                self.event_ids = db.get_all_event_ids(self.alid)

            if action == editAction:
                eid = self.listWidget.currentItem()
                if eid is not None:
                    eid = self.listWidget.currentItem().whatsThis()
                    last_name = self.db.get_event_data(self.alid,
                                                       eid)['event_head']
                    text, ok = QInputDialog().getText(
                        self, "Название события",
                        "Ввкдите новое название события:", QLineEdit.Normal,
                        str(last_name))
                    if ok:
                        event = self.db.edit_event({
                            'alid': self.alid,
                            'eid': eid,
                            'event_head': text
                        })
                        self.listWidget.currentItem().setText(text)
                        self.db.events.save()
                        if event:
                            event = self.db.get_event_data(alid, eid)
                            #b = layout.takeAt(1)
                            self.dictViewer.close()
                            #b.widget().deleteLater()
                            self.dictViewer = DictViewer(
                                event, 1, self.db.events.invizible_fields,
                                self.db.events.editable_fields)
                            self.layout.addWidget(self.dictViewer, 0, 2)
                    self.event_ids = db.get_all_event_ids(self.alid)

            if action == delAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить событие?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    eid = self.listWidget.currentItem()
                    if eid is not None:
                        eid = self.listWidget.currentItem().whatsThis()
                        self.db.del_event({'alid': self.alid, 'eid': eid})
                        self.listWidget.takeItem(self.listWidget.currentRow())
                        self.db.events.save()
                        #self.changed = True
                    self.event_ids = db.get_all_event_ids(self.alid)

            if action == delAllAction:
                res = QMessageBox.question(
                    self, 'ВНИМАНИЕ!!!',
                    "Вы действительно хотите удалить все события?",
                    QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
                if res == QMessageBox.Yes:
                    if self.db.del_all_events(int(self.alid)):
                        self.listWidget.clear()
                        self.db.events.save()
                        #self.changed = True
                    self.event_ids = db.get_all_event_ids(self.alid)

                    #db.photos.save()

            if action == quitAction:
                self.accept()
예제 #26
0
파일: main.py 프로젝트: yenru0/antanswer
 def input_reset(self, l: int = 0):
     self.ui.input.clear()
     for i in range(l):
         temp_item = QListWidgetItem("")
         temp_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsDragEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
         self.ui.input.addItem(temp_item)
예제 #27
0
파일: gallery.py 프로젝트: pauljxtan/imgtag
 def _set_icon(self, result: Tuple[int, QIcon, str, str]):
     (idx, icon, filepath, label) = result
     item = QListWidgetItem(icon, label)
     # Store filepath to be retrieved by other components
     item.setData(Qt.StatusTipRole, filepath)
     self._gallery.addItem(item)
예제 #28
0
    def generate_track_item(self, ref_num: int):
        """
        Generate the track list for the two input directories with the first file in the list
        :return:
        """

        if len(self._source_1_list) != 0 and ref_num == 1:

            self._tracks_1 = PymkvWrapper.process_file(self._source_1_list[0])

            #TODO turn item generate into GUI helper
            for track in self._tracks_1:

                track_name = "N/A"
                track_type = track._track_type

                if track.track_name is not None:
                    track_name = track.track_name

                track_item_1 = QListWidgetItem("Track Name: " + track_name +
                                               " | " + "Type: " + track_type)
                track_item_1.setFlags(
                    track_item_1.flags()
                    | PySide2.QtCore.Qt.ItemFlag.ItemIsUserCheckable)
                track_item_1.setFlags(
                    track_item_1.flags()
                    | PySide2.QtCore.Qt.ItemFlag.ItemIsEnabled)
                track_item_1.setCheckState(
                    PySide2.QtCore.Qt.CheckState.Unchecked)

                self.events.ref_tracks_generated(self._source_1_list[0],
                                                 track_item_1, 1)

        if len(self._source_2_list) != 0 and ref_num == 2:

            self._tracks_2 = PymkvWrapper.process_file(self._source_2_list[0])
            # TODO turn item generate into GUI helper
            for track in self._tracks_2:

                track_name = "N/A"
                track_type = track._track_type

                if track.track_name is not None:
                    track_name = track.track_name

                track_item_2 = QListWidgetItem("Track Name: " + track_name +
                                               " | " + "Type: " + track_type)
                track_item_2.setFlags(
                    track_item_2.flags()
                    | PySide2.QtCore.Qt.ItemFlag.ItemIsUserCheckable)
                track_item_2.setFlags(
                    track_item_2.flags()
                    | PySide2.QtCore.Qt.ItemFlag.ItemIsEnabled)
                track_item_2.setCheckState(
                    PySide2.QtCore.Qt.CheckState.Unchecked)

                self.events.ref_tracks_generated(self._source_2_list[0],
                                                 track_item_2, 2)
예제 #29
0
 def _fill_list_with_scene_objects(self, scene):
     for sceneObject in self._filter_function(scene):
         item = QListWidgetItem()
         item.setText(sceneObject.name)
         item.setData(Qt.UserRole, sceneObject.node_id)
         self.sceneObjectListWidget.addItem(item)
예제 #30
0
 def append_wifi_data(self, data):
     """ Append data to list in WiFi list tab """
     self.clear_wifi_list.emit()
     i = 1
     for i in data:
         if self.current_lang == "Polski":
             item = QListWidgetItem(
                 'BSID: ' + str(i) + ' \nKanał: ' + str(data[i][1]) +
                 ' \nRSSI: ' + str(data[i][0]) + ' dBm \nMAC: ' +
                 str(data[i][3]) + ' (Producent: ' +
                 str(manu.search_manufacturer_by_mac(str(data[i][3]))) +
                 ')')
         else:
             item = QListWidgetItem(
                 'BSID: ' + str(i) + ' \nChannel: ' + str(data[i][1]) +
                 ' \nRSSI: ' + str(data[i][0]) + ' dBm \nMAC: ' +
                 str(data[i][3]) + ' (Manufacturer: ' +
                 str(manu.search_manufacturer_by_mac(str(data[i][3]))) +
                 ')')
         if int(abs(data[i][0])) < 50:
             item.setIcon(QIcon('icons/icons8-no-connection-64-green.png'))
         elif int(abs(data[i][0])) >= 50 and int(abs(data[i][0])) < 70:
             item.setIcon(QIcon('icons/icons8-no-connection-64-blue.png'))
         elif int(abs(data[i][0])) >= 70 and int(abs(data[i][0])) < 80:
             item.setIcon(QIcon('icons/icons8-no-connection-64-orange.png'))
         elif int(abs(data[i][0])) >= 80 and int(abs(data[i][0])) < 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-red.png'))
         elif int(abs(data[i][0])) >= 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-black.png'))
         self.append_wifi_list_item.emit(item)
         self.loop = QEventLoop()
         QTimer.singleShot(50, self.loop.quit)
         self.loop.exec_()