예제 #1
0
    def updateTable(self):
        queryset = self.queryset()
        self.pagination = paginate(queryset, self.page, perPage=12)
        items = self.pagination.items
        self.table.setRowCount(len(items))
        self.table.setColumnWidth(0, 50)
        self.table.setColumnWidth(2, 140)
        self.table.setColumnWidth(3, 50)

        for row, item in enumerate(items):
            self.table.setItem(row, 0, QTableWidgetItem(item.tt))
            self.table.setItem(row, 1, QTableWidgetItem(item.rptInline))
            if item.sent:
                sent = item.sent.strftime('%Y-%m-%d %H:%M:%S')
                self.table.setItem(row, 2, QTableWidgetItem(sent))

            if item.confirmed:
                checkedItem = QTableWidgetItem()
                checkedItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
                checkedItem.setIcon(QIcon(':/checkmark.png'))
                self.table.setItem(row, 3, checkedItem)
            else:
                checkedItem = QTableWidgetItem()
                checkedItem.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
                checkedItem.setIcon(QIcon(':/cross.png'))
                self.table.setItem(row, 3, checkedItem)

            if 'COR' in item.rpt or 'AMD' in item.rpt:
                self.table.item(row, 0).setForeground(self.color)
                self.table.item(row, 1).setForeground(self.color)
                self.table.item(row, 2).setForeground(self.color)

        self.table.resizeRowsToContents()
예제 #2
0
    def _set_col_name(self, idx: int, app_v: ApplicationView):
        col = QTableWidgetItem()
        col.setText(app_v.model.base_data.name if app_v.model.base_data.
                    name else '...')
        col.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
        col.setToolTip(self.window.locale_keys['app.name'].lower())

        if self.disk_cache and app_v.model.supports_disk_cache(
        ) and os.path.exists(app_v.model.get_disk_icon_path()):
            with open(app_v.model.get_disk_icon_path(), 'rb') as f:
                icon_bytes = f.read()
                pixmap = QPixmap()
                pixmap.loadFromData(icon_bytes)
                icon = QIcon(pixmap)
                self.icon_cache.add_non_existing(
                    app_v.model.base_data.icon_url, {
                        'icon': icon,
                        'bytes': icon_bytes
                    })

        elif not app_v.model.base_data.icon_url:
            icon = QIcon(app_v.model.get_default_icon_path())
        else:
            icon_data = self.icon_cache.get(app_v.model.base_data.icon_url)
            icon = icon_data['icon'] if icon_data else QIcon(
                app_v.model.get_default_icon_path())

        col.setIcon(icon)
        self.setItem(idx, 0, col)
예제 #3
0
파일: FileWranglerApp.py 프로젝트: ag-sd/py
 def set_model(self, file_items):
     self._reset()
     self.setRowCount(len(file_items))
     self.setSortingEnabled(False)
     for i in range(0, len(file_items)):
         source = file_items[i][DisplayKeys.source]
         target = file_items[i][DisplayKeys.target]
         source_item = QTableWidgetItem(source)
         target_item = QTableWidgetItem(target)
         mime = MainTable._mime_database.mimeTypesForFileName(source)
         if len(mime):
             source_item.setIcon(QIcon.fromTheme(mime[0].iconName()))
         else:
             logger.error("Unable to determine mime type for " + source)
             source_item.setIcon(QIcon.fromTheme("text-x-generic"))
         source_item.setCheckState(Qt.Checked)
         _, file_name = os.path.split(target)
         if file_name.startswith(_UNKNOWN_KEY):
             target_item.setBackground(MainTable._error_brush)
             source_item.setBackground(MainTable._error_brush)
             source_item.setCheckState(Qt.Unchecked)
         self.setItem(i, 0, source_item)
         self.setItem(i, 1, target_item)
     self.setSortingEnabled(True)
     self.model = file_items
예제 #4
0
 def fillEachPieceOfEquip(self, equip, side, pos):
     tooltip = eq2s_func.CookItemText(equip['item'])
     try:
         epnm = QTableWidgetItem(equip['item']['displayname'])
         epnm.setToolTip(tooltip.text)
         epnm.setData(1001, equip['item']['iconid'])
         epnm.setData(1002, equip['item']['displayname'])
         if side == 'l':
             epnm.setTextAlignment(Qt.AlignRight)
         else:
             epnm.setTextAlignment(Qt.AlignLeft)
         epicon = QTableWidgetItem()
         icon = QIcon()
         icon.addPixmap(eq2s_func.get_pixmap_in_db(equip['item']['iconid']))
         epicon.setIcon(icon)
         epicon.setToolTip(tooltip.text)
         epicon.setData(1001, equip['item']['iconid'])
         epicon.setData(1002, equip['item']['displayname'])
         if side == 'l':
             self.leftEquipTable.setItem(pos, 0, epnm)
             self.leftEquipTable.setItem(pos, 1, epicon)
         elif side == 'r':
             self.rightEquipTable.setItem(pos, 0, epicon)
             self.rightEquipTable.setItem(pos, 1, epnm)
     except KeyError:
         pass
예제 #5
0
 def assign_mem(self, mem):
     self.mem=mem
     #UI headers
     self.setColumnCount(self.mem.maxplayers+1)        
     for i, j in enumerate(self.mem.jugadores.arr):
         self.setColumnWidth(i, 90)
         item = QTableWidgetItem(j.name)
         item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter|Qt.AlignCenter)
         item.setIcon(j.color.qicon())   
         self.setHorizontalHeaderItem(i, item)
     item = QTableWidgetItem(self.tr("Total"))
     item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter|Qt.AlignCenter)
     self.setHorizontalHeaderItem(self.mem.maxplayers, item)
     
     #Crea items
     for i in range(self.mem.maxplayers+1+1):
         for j in range(17):
             item=QTableWidgetItem()
             item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter|Qt.AlignCenter)
             self.setItem( j,i, item )
             
     #Rallando la tabla
     for i, j in ((11, self.mem.maxplayers), (12, self.mem.maxplayers), (14, self.mem.maxplayers), (16, self.mem.maxplayers)):
         item = QTableWidgetItem()
         item.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
         brush = QBrush(QColor(0, 0, 0))
         brush.setStyle(Qt.BDiagPattern)
         item.setBackground(brush)
         self.setItem(i, j, item)
예제 #6
0
파일: apps_table.py 프로젝트: jayvdb/bauh
    def _set_col_name(self, col: int, pkg: PackageView):
        item = QTableWidgetItem()
        item.setText(pkg.model.name if pkg.model.name else '...')
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
        item.setToolTip(self.i18n['app.name'].lower())

        if self.disk_cache and pkg.model.supports_disk_cache(
        ) and pkg.model.get_disk_icon_path() and os.path.exists(
                pkg.model.get_disk_icon_path()):
            with open(pkg.model.get_disk_icon_path(), 'rb') as f:
                icon_bytes = f.read()
                pixmap = QPixmap()
                pixmap.loadFromData(icon_bytes)
                icon = QIcon(pixmap)
                self.icon_cache.add_non_existing(pkg.model.icon_url, {
                    'icon': icon,
                    'bytes': icon_bytes
                })

        elif not pkg.model.icon_url:
            icon = QIcon(pkg.model.get_default_icon_path())
        else:
            icon_data = self.icon_cache.get(pkg.model.icon_url)
            icon = icon_data['icon'] if icon_data else QIcon(
                pkg.model.get_default_icon_path())

        item.setIcon(icon)
        self.setItem(pkg.table_index, col, item)
예제 #7
0
def set_col(table,
            row,
            col,
            val,
            fmt=None,
            color=None,
            align=None,
            editable=None,
            data=None,
            icon=None):
    item = QTableWidgetItem(fmt % val if fmt else str(val))
    if color:
        item.setForeground(QtGui.QColor(color))
    if align == "right":
        item.setTextAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
    if align == "center":
        item.setTextAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
    if not (editable is None):
        if editable:
            item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
                          | QtCore.Qt.ItemIsEditable)
        else:
            item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable)
    if data:
        item.setData(99, data)
    if icon:
        item.setIcon(icon)

    table.setItem(row, col, item)
    return item
예제 #8
0
    def generar_tabla(self, p_table_widged):
        """
        Genera una tabla con las entradas de la lista del historial

        :param p_table_widged: La tabla perteneciente a la interfaz
        :return:
        """
        p_table_widged.setRowCount(len(self.lista))
        for i in range(0, len(self.lista)):
            # Rellenamos la tabla
            historial = self.lista[i]
            newitem = QTableWidgetItem(historial.nombre_script)
            p_table_widged.setItem(i, 0, newitem)
            newitem = QTableWidgetItem(historial.nombre_tag)
            p_table_widged.setItem(i, 1, newitem)
            newitem = QTableWidgetItem(historial.nombre_alumno + " " + historial.apellido)
            p_table_widged.setItem(i, 2, newitem)
            newitem = QTableWidgetItem(historial.nombre_grupo)
            p_table_widged.setItem(i, 3, newitem)
            if historial.accion == 1:
                # Añadir
                newitem_anadir = QTableWidgetItem("Añadir")
                newitem_anadir.setIcon(QtGui.QIcon("plasma-next-icons/Breeze/actions/toolbar/list-add.svg"))
                p_table_widged.setItem(i, 4, newitem_anadir)
            else:
                # Eliminar
                newitem_eliminar = QTableWidgetItem("Eliminar")
                newitem_eliminar.setIcon(QtGui.QIcon("plasma-next-icons/Breeze/actions/toolbar/edit-delete.svg"))
                p_table_widged.setItem(i, 4, newitem_eliminar)

            newitem = QTableWidgetItem(historial.informacion)
            p_table_widged.setItem(i, 5, newitem)
            newitem = QTableWidgetItem(historial.fecha_creacion_h)
            p_table_widged.setItem(i, 6, newitem)
    def add_row_to_list_of_users(self, users):
        who_is_signed = self.label_user_name.text()
        for user in users:
            if user['login'] != who_is_signed:
                newRowNum = self.table_widget_list_of_users.rowCount()
                self.table_widget_list_of_users.insertRow(newRowNum)
                self.table_widget_list_of_users.setItem(
                    newRowNum, 0, QTableWidgetItem(str(user['login'])))
                self.table_widget_list_of_users.setItem(
                    newRowNum, 1, QTableWidgetItem(str(user['status'])))

                #print(os.listdir())
                #f = open("gui/resources/avatars/lolo.txt", 'r')
                #if f.mode == 'r':
                #    con = f.read()
                #    print(con)

                item = QTableWidgetItem()
                item.setIcon(QIcon(QPixmap(":/avatars/" +
                                           str(user['avatar']))))
                self.table_widget_list_of_users.setItem(newRowNum, 2, item)

        avatar_name = self.client.get_avatar(who_is_signed)
        pixmap = QPixmap(':/avatars/' + str(avatar_name))
        self.label_avatar.setPixmap(pixmap)
예제 #10
0
    def table_add_rows(self, actor, character, series_star):
        """
        Add new row in table.

        :param actor: actor name
        :param character: character name
        :param series_star: start bool value
        """
        self.table.insertRow(self.rows)

        self.table.setItem(self.rows, 0, QTableWidgetItem(actor))
        self.table.setItem(self.rows, 1, QTableWidgetItem(character))
        if series_star:
            icon = QIcon()
            icon.addPixmap(QPixmap('images/star_yellow_16.png'), QIcon.Normal,
                           QIcon.Off)
            star = QTableWidgetItem()
            star.setIcon(icon)
            self.table.setItem(self.rows, 2, star)

        for i in range(2):
            self.table.item(self.rows,
                            i).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)

        self.rows += 1
 def taskListCallback(self, result):
     self.taskListRefresh += 1
     if self.taskListRefresh == 4:  #this slowsdown the refresh rate so the buttons work more easily
         self.taskListRefresh = 0
         self.PriorityQueueTable.setRowCount(0)  # clear table
         for item in result.taskMsgs:
             if item.robotName == "unassigned":
                 self.PriorityQueueTable.insertRow(
                     self.PriorityQueueTable.rowCount())
                 self.PriorityQueueTable.setItem(
                     self.PriorityQueueTable.rowCount() - 1, 0,
                     QTableWidgetItem(item.taskName))
                 self.PriorityQueueTable.setItem(
                     self.PriorityQueueTable.rowCount() - 1, 1,
                     QTableWidgetItem(item.ID))
                 self.PriorityQueueTable.setItem(
                     self.PriorityQueueTable.rowCount() - 1, 2,
                     QTableWidgetItem("{:.2f}".format(item.taskPriority)))
                 icon_item = QTableWidgetItem()
                 icon_item.setIcon(QIcon(trashIcon))
                 self.PriorityQueueTable.setItem(
                     self.PriorityQueueTable.rowCount() - 1, 3, icon_item)
                 if item.OGSupervisorID != self.id:
                     self.PriorityQueueTable.item(
                         self.PriorityQueueTable.rowCount() - 1,
                         0).setBackground(QColor(245, 167, 66))
                     self.PriorityQueueTable.item(
                         self.PriorityQueueTable.rowCount() - 1,
                         1).setBackground(QColor(245, 167, 66))
                     self.PriorityQueueTable.item(
                         self.PriorityQueueTable.rowCount() - 1,
                         2).setBackground(QColor(245, 167, 66))
                     self.PriorityQueueTable.item(
                         self.PriorityQueueTable.rowCount() - 1,
                         3).setBackground(QColor(245, 167, 66))
예제 #12
0
class GalleryDownloaderItem(QObject):
	"""
	Receives a HenItem
	"""
	d_item_ready = pyqtSignal(object)
	def __init__(self, hitem):
		super().__init__()
		assert isinstance(hitem, pewnet.HenItem)
		self.item = hitem
		url = self.item.gallery_url

		self.profile_item = QTableWidgetItem(self.item.name)
		self.profile_item.setToolTip(url)
		def set_profile(item):
			self.profile_item.setIcon(QIcon(item.thumb))
		self.item.thumb_rdy.connect(set_profile)

		# status
		self.status_item = QTableWidgetItem('Downloading...')
		self.status_item.setToolTip(url)
		def set_finished(item):
			self.status_item.setText('Finished downloading!')
			self.d_item_ready.emit(self)
		self.item.file_rdy.connect(set_finished)

		# other
		self.cost_item = QTableWidgetItem(self.item.cost)
		self.cost_item.setToolTip(url)
		self.size_item = QTableWidgetItem(self.item.size)
		self.size_item.setToolTip(url)
		type = 'Archive' if hitem.download_type == 0 else 'Torrent'
		self.type_item = QTableWidgetItem(type)
		self.type_item.setToolTip(url)
예제 #13
0
    def on_scrapped_credits(self, credit: list):
        """

        """
        self.tbl_result.setColumnCount(5)
        self.tbl_result.setRowCount(len(credit))

        self.tbl_result.setHorizontalHeaderLabels([
            "Banka",
            "Kredi Adı",
            "Faiz Oranı",
            "Toplam Maliyet",
            "Aylık Taksit",
        ])
        self.tbl_result.setIconSize(QSize(60, 60))
        self.tbl_result.setSortingEnabled(True)

        for row, data in enumerate(credit):
            item = QTableWidgetItem()
            item.setIcon(QIcon(data.get('logo')))

            self.tbl_result.setItem(row, 0, item)
            self.tbl_result.setItem(row, 1,
                                    QTableWidgetItem(data.get('BankName')))
            self.tbl_result.setItem(row, 2,
                                    QTableWidgetItem(data.get('InterestRate')))
            self.tbl_result.setItem(
                row, 3, QTableWidgetItem(data.get('TotalPaybackAmnt') + " TL"))
            self.tbl_result.setItem(
                row, 4,
                QTableWidgetItem(data.get('MonthlyInstallment') + " TL"))
예제 #14
0
파일: apps_table.py 프로젝트: Jocix123/bauh
    def _set_col_name(self, col: int, pkg: PackageView):
        item = QTableWidgetItem()
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)

        name = pkg.model.get_display_name()
        if name:
            item.setToolTip('{}: {}'.format(self.i18n['app.name'].lower(),
                                            pkg.model.get_name_tooltip()))
        else:
            name = '...'
            item.setToolTip(self.i18n['app.name'].lower())

        if len(name) > NAME_MAX_SIZE:
            name = name[0:NAME_MAX_SIZE - 3] + '...'

        if len(name) < NAME_MAX_SIZE:
            name = name + ' ' * (NAME_MAX_SIZE - len(name))

        item.setText(name)

        icon_path = pkg.model.get_disk_icon_path()
        if pkg.model.installed and pkg.model.supports_disk_cache(
        ) and icon_path:
            if icon_path.startswith('/'):
                if os.path.isfile(icon_path):
                    with open(icon_path, 'rb') as f:
                        icon_bytes = f.read()
                        pixmap = QPixmap()
                        pixmap.loadFromData(icon_bytes)
                        icon = QIcon(pixmap)
                        self.icon_cache.add_non_existing(
                            pkg.model.icon_url, {
                                'icon': icon,
                                'bytes': icon_bytes
                            })
                else:
                    icon = QIcon(pkg.model.get_default_icon_path())
            else:
                try:
                    icon = QIcon.fromTheme(icon_path)
                    self.icon_cache.add_non_existing(pkg.model.icon_url, {
                        'icon': icon,
                        'bytes': None
                    })

                except:
                    icon = QIcon(pkg.model.get_default_icon_path())

        elif not pkg.model.icon_url:
            icon = QIcon(pkg.model.get_default_icon_path())
        else:
            icon_data = self.icon_cache.get(pkg.model.icon_url)
            icon = icon_data['icon'] if icon_data else QIcon(
                pkg.model.get_default_icon_path())

        item.setIcon(icon)
        self.setItem(pkg.table_index, col, item)
예제 #15
0
class GalleryDownloaderItem(QObject):
	"""
	Receives a HenItem
	"""
	d_item_ready = pyqtSignal(object)
	def __init__(self, hitem):
		super().__init__()
		assert isinstance(hitem, pewnet.HenItem)
		self.d_item_ready.connect(self.done)
		self.item = hitem
		url = self.item.gallery_url

		self.profile_item = QTableWidgetItem(self.item.name)
		self.profile_item.setData(Qt.UserRole+1, hitem)
		self.profile_item.setToolTip(url)
		def set_profile(item):
			self.profile_item.setIcon(QIcon(item.thumb))
		self.item.thumb_rdy.connect(set_profile)

		# status
		self.status_item = QTableWidgetItem('In queue...')
		self.status_item.setToolTip(url)
		def set_finished(item):
			self.status_item.setText('Finished!')
			self.d_item_ready.emit(self)
		self.item.file_rdy.connect(set_finished)

		# other
		self.cost_item = QTableWidgetItem(self.item.cost)
		self.cost_item.setToolTip(url)
		self.size_item = QTableWidgetItem(self.item.size)
		self.size_item.setToolTip(url)
		type = 'Archive' if hitem.download_type == 0 else 'Torrent'
		self.type_item = QTableWidgetItem(type)
		self.type_item.setToolTip(url)

		self.status_timer = QTimer()
		self.status_timer.timeout.connect(self.check_progress)
		self.status_timer.start(500)

	def check_progress(self):
		if self.item.current_state == self.item.DOWNLOADING:
			btomb = 1048576
			self.status_item.setText("{0:.2f}/{1:.2f} MB".format(self.item.current_size/btomb,
															  self.item.total_size/btomb))
			self.size_item.setText("{0:.2f} MB".format(self.item.total_size/btomb))
		elif self.item.current_state == self.item.CANCELLED:
			self.status_item.setText("Cancelled!")
			self.status_timer.stop()

	def done(self):
		self.status_timer.stop()
		if self.item.download_type == 0:
			self.status_item.setText("Sent to library!")
		else:
			self.status_item.setText("Sent to torrent client!")
예제 #16
0
class GalleryDownloaderItem(QObject):
	"""
	Receives a HenItem
	"""
	d_item_ready = pyqtSignal(object)
	def __init__(self, hitem):
		super().__init__()
		assert isinstance(hitem, pewnet.HenItem)
		self.d_item_ready.connect(self.done)
		self.item = hitem
		url = self.item.gallery_url

		self.profile_item = QTableWidgetItem(self.item.name)
		self.profile_item.setData(Qt.UserRole+1, hitem)
		self.profile_item.setToolTip(url)
		def set_profile(item):
			self.profile_item.setIcon(QIcon(item.thumb))
		self.item.thumb_rdy.connect(set_profile)

		# status
		self.status_item = QTableWidgetItem('In queue...')
		self.status_item.setToolTip(url)
		def set_finished(item):
			self.status_item.setText('Finished!')
			self.d_item_ready.emit(self)
		self.item.file_rdy.connect(set_finished)

		# other
		self.cost_item = QTableWidgetItem(self.item.cost)
		self.cost_item.setToolTip(url)
		self.size_item = QTableWidgetItem(self.item.size)
		self.size_item.setToolTip(url)
		type = 'Archive' if hitem.download_type == 0 else 'Torrent'
		self.type_item = QTableWidgetItem(type)
		self.type_item.setToolTip(url)

		self.status_timer = QTimer()
		self.status_timer.timeout.connect(self.check_progress)
		self.status_timer.start(500)

	def check_progress(self):
		if self.item.current_state == self.item.DOWNLOADING:
			btomb = 1048576
			self.status_item.setText("{0:.2f}/{1:.2f} MB".format(self.item.current_size/btomb,
															  self.item.total_size/btomb))
			self.size_item.setText("{0:.2f} MB".format(self.item.total_size/btomb))
		elif self.item.current_state == self.item.CANCELLED:
			self.status_item.setText("Cancelled!")
			self.status_timer.stop()

	def done(self):
		self.status_timer.stop()
		if self.item.download_type == 0:
			self.status_item.setText("Sent to library!")
		else:
			self.status_item.setText("Sent to torrent client!")
예제 #17
0
파일: main.py 프로젝트: kNalj/yamb
    def build_player_table(self):
        """

        :return:
        """
        player_widget = QTableWidget(16, 6)
        player_widget.setMaximumWidth(270)
        player_widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        player_widget.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        player_widget.verticalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)

        labels = {1: "down", 2: "any", 3: "up", 4: "call", 5: "countercall"}
        combos = {
            8: "M",
            9: "m",
            11: "T",
            12: "S",
            13: "F",
            14: "P",
            15: "Y",
            16: "="
        }

        for i in range(5):
            headerItem = QTableWidgetItem("")
            headerItem.setIcon(
                QIcon(QPixmap("./img/0{}-{}.png".format(i + 1,
                                                        labels[i + 1]))))
            headerItem.setTextAlignment(Qt.AlignVCenter)
            player_widget.setHorizontalHeaderItem(i, headerItem)

        headerItem = QTableWidgetItem("")
        headerItem.setTextAlignment(Qt.AlignVCenter)
        player_widget.setHorizontalHeaderItem(5, headerItem)

        for i in range(6):
            headerItem = QTableWidgetItem("")
            headerItem.setIcon(
                QIcon(QPixmap("./img/dice_{}.png".format(i + 1))))
            headerItem.setTextAlignment(Qt.AlignVCenter)
            player_widget.setVerticalHeaderItem(i, headerItem)

        for i in [6, 9, 16]:
            headerItem = QTableWidgetItem("")
            headerItem.setTextAlignment(Qt.AlignVCenter)
            player_widget.setVerticalHeaderItem(i, headerItem)

        for row, label in combos.items():
            headerItem = QTableWidgetItem("{}".format(label))
            headerItem.setTextAlignment(Qt.AlignVCenter)
            player_widget.setVerticalHeaderItem(row - 1, headerItem)

        return player_widget
예제 #18
0
    def __createItemsARow(self, rowNo, name, sex, birth, nation, isParty,
                          score):  ##创建一行的items
        StudID = 201805000 + rowNo  #学号

        #姓名
        item = QTableWidgetItem(name, CellType.ctName.value)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        font = item.font()
        font.setBold(True)
        item.setFont(font)
        item.setData(Qt.UserRole, StudID)  #关联数据
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colName.value, item)

        #性别
        if (sex == "男"):
            icon = QIcon(":/icons/images/boy.ico")
        else:
            icon = QIcon(":/icons/images/girl.ico")
        item = QTableWidgetItem(sex, CellType.ctSex.value)
        item.setIcon(icon)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colSex.value, item)

        #出生日期
        strBitrh = birth.toString("yyyy-MM-dd")  #日期转换为字符串
        item = QTableWidgetItem(strBitrh, CellType.ctBirth.value)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colBirth.value, item)

        #民族
        item = QTableWidgetItem(nation, CellType.ctNation.value)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        if (nation != "汉族"):
            item.setForeground(QBrush(Qt.blue))
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colNation.value, item)

        #分数
        strScore = str(score)
        item = QTableWidgetItem(strScore, CellType.ctScore.value)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colScore.value, item)

        #党员
        item = QTableWidgetItem("党员", CellType.ctPartyM.value)
        item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
        if (isParty == True):
            item.setCheckState(Qt.Checked)
        else:
            item.setCheckState(Qt.Unchecked)
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled
                      | Qt.ItemIsUserCheckable)  #不允许编辑文字
        item.setBackground(QBrush(Qt.yellow))  #Qt::green  lightGray  yellow
        self.ui.tableInfo.setItem(rowNo, FieldColNum.colPartyM.value,
                                  item)  #为单元格设置Item
예제 #19
0
 def setMyData(self):
     for row, item in enumerate(self.data):
         title_item = QTableWidgetItem(item[0])
         font = title_item.font()
         font.setBold(True)
         title_item.setFont(font)
         if self.use_icons:
             icon = QIcon(icon_dir + QtCore.QUrl(item[1]).host() + '.png')
             if icon.pixmap(16, 16).isNull(): icon = QIcon(':/quartz.png')
             title_item.setIcon(icon)
         self.setItem(row, 0, title_item)
예제 #20
0
 def table_reload(self, table, setamenazas):
     table.setRowCount(len(setamenazas.arr))
     for i, a in enumerate(setamenazas.arr):
         item = QTableWidgetItem()
         item.setIcon(a.attacking_pawn.color.qicon())
         table.setItem(i, 0, QTableWidgetItem(item))
         item = QTableWidgetItem(str(a.attacking_pawn.casilla().id))
         item.setTextAlignment(Qt.AlignCenter)
         table.setItem(i, 1, item)
         item = QTableWidgetItem(a.name())
         table.setItem(i, 2, item)
예제 #21
0
    def insert_item(self, identification, name):

        status_widget = QTableWidgetItem()
        status_widget.setIcon(QtGui.QIcon(":/images/autentication.png"))

        self.contacts.insertRow(self.contacts.rowCount())
        self.contacts.setItem(self.contacts_count, 0, status_widget)
        self.contacts.setItem(self.contacts_count, 1, QTableWidgetItem(identification))
        self.contacts.setItem(self.contacts_count, 2, QTableWidgetItem(name))
        self.contacts_count += 1
        self.status_widgets[identification] = status_widget
        self.contacts.resizeColumnsToContents()
예제 #22
0
 def setMyData(self):
     for row, item in enumerate(self.data):
         title_item = QTableWidgetItem(item[0])
         font = title_item.font()
         font.setBold(True)
         title_item.setFont(font)
         if self.use_icons:
             icon = QIcon(icon_dir + item[1].split('/')[2] + '.png')
             if icon.pixmap(16, 16).isNull():
                 icon = QIcon.fromTheme('applications-internet')
             title_item.setIcon(icon)
         self.setItem(row, 0, title_item)
예제 #23
0
    def _generar_tabla_filtrada(self, p_lista_filtrada):
        """
        La lista que nos genera la función de filtrado. Es una lista que contiene objetos de tipo historial.
        Por ello. La generación de la tabla de filtrado es algo diferente y se debe hacer en éste punto.

        :param p_lista_filtrada: La lista que contiene los elementos de historial ya filtrada
        :return:
        """

        # Bloquemos las señales y vaciamos la tabla
        self.ventana.tHistorial.blockSignals(True)

        # Cargamos la tabla
        self.ventana.tHistorial.setRowCount(len(p_lista_filtrada))
        for i in range(0, len(p_lista_filtrada)):
            # Rellenamos la tabla
            historial = p_lista_filtrada[i]
            newitem = QTableWidgetItem(historial.nombre_script)
            self.ventana.tHistorial.setItem(i, 0, newitem)
            newitem = QTableWidgetItem(historial.nombre_tag)
            self.ventana.tHistorial.setItem(i, 1, newitem)
            newitem = QTableWidgetItem(historial.nombre_alumno + " " +
                                       historial.apellido)
            self.ventana.tHistorial.setItem(i, 2, newitem)
            newitem = QTableWidgetItem(historial.nombre_grupo)
            self.ventana.tHistorial.setItem(i, 3, newitem)
            if historial.accion == 1:
                # Añadir
                newitem_anadir = QTableWidgetItem("Añadir")
                newitem_anadir.setIcon(
                    QtGui.QIcon(
                        "plasma-next-icons/Breeze/actions/toolbar/list-add.svg"
                    ))
                self.ventana.tHistorial.setItem(i, 4, newitem_anadir)
            else:
                # Eliminar
                newitem_eliminar = QTableWidgetItem("Eliminar")
                newitem_eliminar.setIcon(
                    QtGui.QIcon(
                        "plasma-next-icons/Breeze/actions/toolbar/edit-delete.svg"
                    ))
                self.ventana.tHistorial.setItem(i, 4, newitem_eliminar)

            newitem = QTableWidgetItem(historial.informacion)
            self.ventana.tHistorial.setItem(i, 5, newitem)
            newitem = QTableWidgetItem(historial.fecha_creacion_h)
            self.ventana.tHistorial.setItem(i, 6, newitem)

        # Liberamos las señales
        self.ventana.tHistorial.blockSignals(False)
예제 #24
0
 def add_picture(self):
     row = 0
     column = 0
     language_names = ["python", "golang", "c", "javascript", "html-5", "css3"]
     for m in range(len(language_names)):
         if m % 3 == 0 and m != 0:
             row += 1
             column = 0
         file_path = os.path.join("03_高级界面控件/示例内容/sources/images", language_names[m]+"-96.png")
         table_item = QTableWidgetItem()
         table_item.setFlags(Qt.ItemIsEnabled)   # 点击时, 图片能选中
         table_item.setIcon(QIcon(file_path))
         self.table_widget.setItem(row, column, table_item)
         column += 1
예제 #25
0
    def loadImages(self, fileNames):
        for fileName in fileNames:
            row = self.imagesTable.rowCount()
            self.imagesTable.setRowCount(row + 1)
            fileInfo = QFileInfo(fileName)
            imageName = fileInfo.baseName()
            fileImage2x = fileInfo.absolutePath(
            ) + '/' + imageName + "@2x." + fileInfo.suffix()
            fileInfo2x = QFileInfo(fileImage2x)
            image = QImage(fileName)
            toolTip = "Directory: {}\nFile: {}\nFile@2x: {}\nSize: {}x{}".format(
                QDir.toNativeSeparators(fileInfo.absolutePath()),
                fileInfo.fileName(),
                fileInfo2x.fileName() if fileInfo2x.exists else "<None>",
                image.width(), image.height())
            fileItem = QTableWidgetItem(imageName)
            fileItem.setData(Qt.UserRole, fileName)
            fileItem.setIcon(QIcon(QPixmap.fromImage(image)))
            fileItem.setFlags((fileItem.flags() | Qt.ItemIsUserCheckable)
                              & ~Qt.ItemIsEditable)
            fileItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 0, fileItem)

            mode = QIcon.Normal
            state = QIcon.Off

            if self.guessModeStateAct.isChecked():
                if "_act" in imageName:
                    mode = QIcon.Active
                elif "_dis" in imageName:
                    mode = QIcon.Disabled
                elif "_sel" in imageName:
                    mode = QIcon.Selected

                if "_on" in imageName:
                    mode = QIcon.On

            modeItem = QTableWidgetItem(IconPreviewArea.iconModeNames()[
                IconPreviewArea.iconModes().index(mode)])
            modeItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 1, modeItem)
            stateItem = QTableWidgetItem(IconPreviewArea.iconStateNames()[
                IconPreviewArea.iconStates().index(state)])
            stateItem.setToolTip(toolTip)
            self.imagesTable.setItem(row, 2, stateItem)
            self.imagesTable.openPersistentEditor(modeItem)
            self.imagesTable.openPersistentEditor(stateItem)
            fileItem.setCheckState(Qt.Checked)
예제 #26
0
    def widgetInsideTable(self):
        # ===== Button view pass inside table =====
        # viewPassbtn=QPushButton()
        # viewPassbtn.setFixedHeight(self.size_of_btn)
        # viewPassbtn.setFixedWidth(self.size_of_btn)
        # viewPassbtn.setIcon(QIcon(self._dirIcon+'icons8-eye-1.png'))
        # ====== CheckBox ======
        checkBox = QTableWidgetItem()
        checkBox.setIcon(QIcon(self._dirIcon + 'icons8-checkbox-0.png'))
        checkBox.setFlags(Qt.ItemIsEnabled)

        ItemViewPass = QTableWidgetItem()
        ItemViewPass.setIcon(QIcon(self._dirIcon + 'icons8-eye-1.png'))
        ItemViewPass.setFlags(Qt.ItemIsEnabled)
        self.table.setIconSize(QSize(self.size, self.size))

        return checkBox, ItemViewPass
예제 #27
0
	def __createItemARow(self,rowNo,name,sex,birth,nation,isParty,score):
		StudID = 201805000+rowNo
		#姓名
		item = QTableWidgetItem(name,CellType.ctName.value)#实例一个有姓名的单元格,
		item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)#水平+垂直居中
		font = item.font()
		font.setBold(True)
		item.setFont(font)
		item.setData(Qt.UserRole,StudID)#设置自定义数据,将学生ID存入,该数据不会显示在界面
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colName.value,item)#第1(0)行1(0)列,设置item单元格
		#性别
		if sex == '男':
			icon = QIcon(":/icons/images/boy.ico")
		else:
			icon = QIcon(":/icons/images/girl.ico")

		item = QTableWidgetItem(sex,CellType.ctSex.value)
		item.setIcon(icon)#设置图标
		item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colSex.value,item)
		#出生日期
		strBirth = birth.toString('yyyy-MM-dd')
		item = QTableWidgetItem(strBirth,CellType.ctBirth.value)
		item.setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colBirth.value,item)
		#民族
		item = QTableWidgetItem(nation,CellType.cnNation.value)
		item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
		if nation != '汉族':
			item.setForeground(QBrush(Qt.blue))#设置文字颜色为蓝色
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colNation.value,item)
		#党员
		item = QTableWidgetItem("党员",CellType.ctPartyM.value)
		item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
		if  isParty == True:
			item.setCheckState(Qt.Checked)#选中
		else:
			item.setCheckState(Qt.Unchecked)#不选择
		item.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEnabled|Qt.ItemIsUserCheckable)#可选,能被选(锁定),可被复选(为True带有复选框)
		item.setBackground(QBrush(Qt.yellow))
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colParthM.value,item)
		#分数
		strScore = str(score)
		item = QTableWidgetItem(strScore,CellType.cnScore.value)
		item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
		self.ui.tableInfo.setItem(rowNo,FieldColNum.colScore.value,item)
예제 #28
0
    def update_table(self, search=''):  # обновить данные таблицы
        con = sqlite3.connect('db/L_systems.db')
        cur = con.cursor()
        head = [
            x[1] for x in cur.execute(
                """PRAGMA table_info(draw_l_systems)""").fetchall()
        ]
        if search:
            table_values = cur.execute(
                f'''select id, name, angle, axiom, drawer, mover, 
                plus_minus, saver, returner, plus_180, 
                rules, image from draw_l_systems WHERE name = "{search}"'''
            ).fetchall()
        else:
            table_values = cur.execute(
                '''select id, name, angle, axiom, drawer, mover, 
                plus_minus, saver, returner, plus_180, 
                rules, image from draw_l_systems''').fetchall()

        con.close()
        self.tableWidget.setColumnCount(len(head))
        self.tableWidget.setHorizontalHeaderLabels(head)
        self.tableWidget.setRowCount(0)
        for i, row in enumerate(table_values):
            self.tableWidget.setRowCount(self.tableWidget.rowCount() + 1)
            for j, elem in enumerate(row):
                try:
                    if j == len(head) - 1:
                        #img = open('res.png', 'wb')
                        #img.write(elem)
                        #img.close()
                        icon = QIcon()
                        icon.addFile('res.jpg')
                        item = QTableWidgetItem()
                        item.setIcon(icon)

                        self.tableWidget.setItem(i, j, item)
                    else:
                        self.tableWidget.setItem(i, j,
                                                 QTableWidgetItem(str(elem)))
                except Exception as e:
                    print(e)
        self.tableWidget.resizeColumnsToContents()
        con.close()
예제 #29
0
    def set_row(self, item_info, row_index):
        self.insertRow(row_index)

        for attr in self.attributes:
            value = item_info[attr]

            item = QTableWidgetItem()
            #item.info = item_info

            if attr == 'icon':
                item.setIcon(QIcon(value))
            else:
                item.setText(value)

            self.setItem(row_index, self.attributes.index(attr), item)

            print(row_index)

        row_index += 1
예제 #30
0
 def make_icon(self):
     self.tableWidget.setShowGrid(False)
     self.tableWidget.verticalHeader().setVisible(False)
     self.tableWidget.horizontalHeader().setVisible(False)
     self.tableWidget.setStyleSheet('''
     QTableWidget {border:10px solid white;background-color:white}
     QTableWidget:item:hover {background-color:rgb(230,230,230);}''')
     self.tableWidget.setRowCount(6)
     self.tableWidget.setColumnCount(12)
     self.tableWidget.setIconSize(QtCore.QSize(40, 40))
     for i in range(6):
         self.tableWidget.setRowHeight(i, 40)
         for j in range(12):
             self.tableWidget.setColumnWidth(j, 40)
             head_pic = QTableWidgetItem()
             head_pic.setToolTip(expression_dic["10%d%d.png" % (i, j)])
             icon = QtGui.QIcon("expression/fun/10%d%d.png" % (i, j))
             head_pic.setIcon(QtGui.QIcon(icon))
             self.tableWidget.setItem(i, j, head_pic)
예제 #31
0
    def _generar_tabla_filtrada(self, p_lista_filtrada):
        """
        La lista que nos genera la función de filtrado. Es una lista que contiene objetos de tipo historial.
        Por ello. La generación de la tabla de filtrado es algo diferente y se debe hacer en éste punto.

        :param p_lista_filtrada: La lista que contiene los elementos de historial ya filtrada
        :return:
        """

        # Bloquemos las señales y vaciamos la tabla
        self.ventana.tHistorial.blockSignals(True)

        # Cargamos la tabla
        self.ventana.tHistorial.setRowCount(len(p_lista_filtrada))
        for i in range(0, len(p_lista_filtrada)):
            # Rellenamos la tabla
            historial = p_lista_filtrada[i]
            newitem = QTableWidgetItem(historial.nombre_script)
            self.ventana.tHistorial.setItem(i, 0, newitem)
            newitem = QTableWidgetItem(historial.nombre_tag)
            self.ventana.tHistorial.setItem(i, 1, newitem)
            newitem = QTableWidgetItem(historial.nombre_alumno + " " + historial.apellido)
            self.ventana.tHistorial.setItem(i, 2, newitem)
            newitem = QTableWidgetItem(historial.nombre_grupo)
            self.ventana.tHistorial.setItem(i, 3, newitem)
            if historial.accion == 1:
                # Añadir
                newitem_anadir = QTableWidgetItem("Añadir")
                newitem_anadir.setIcon(QtGui.QIcon("plasma-next-icons/Breeze/actions/toolbar/list-add.svg"))
                self.ventana.tHistorial.setItem(i, 4, newitem_anadir)
            else:
                # Eliminar
                newitem_eliminar = QTableWidgetItem("Eliminar")
                newitem_eliminar.setIcon(QtGui.QIcon("plasma-next-icons/Breeze/actions/toolbar/edit-delete.svg"))
                self.ventana.tHistorial.setItem(i, 4, newitem_eliminar)

            newitem = QTableWidgetItem(historial.informacion)
            self.ventana.tHistorial.setItem(i, 5, newitem)
            newitem = QTableWidgetItem(historial.fecha_creacion_h)
            self.ventana.tHistorial.setItem(i, 6, newitem)

        # Liberamos las señales
        self.ventana.tHistorial.blockSignals(False)
예제 #32
0
 def setLine(color, row, column, text, icon=None):
     try:
         brush = QBrush(color)
         brush.setStyle(Qt.SolidPattern)
         i = Globals.MainWindow.R_RaceLive.item(row, column)
         if i == None:
             i = QTableWidgetItem(text)
             Globals.MainWindow.R_RaceLive.setItem(row, column, i)
         else:
             i.setText(text)
         i.setBackground(brush)
         if icon is not None:
             i.setIcon(icon)
         else:
             i.setIcon(QIcon())
     except Exception as e:
         print("in update, setLine( color,%d,%d,%s)" %
               (row, column, text))
         print(color)
         print(e)
예제 #33
0
    def add_item_on_file_table(cls, package):
        """
        像指定表格对象添加指定的特定格式数据数据
        """

        for index, file_obj in enumerate(package.data.listdir):
            file_obj = Dict(file_obj)
            # 插入空行
            package.widget.insertRow(index)

            # =============文件图标
            item0 = QTableWidgetItem()
            item0.setText(file_obj.name)
            provider = QFileIconProvider()
            item0.setIcon(
                provider.icon(
                    QFileInfo(
                        ICO.FILE_TYPE_ICO.get(file_obj.type, "ico/txt.txt"))))
            # f_t_widget.setRowHeight(index, 20)
            package.widget.setItem(index, 0, item0)

            # =============文件大小
            item3 = QTableWidgetItem()
            # item3.setFont(self.fileInfoWidget.global_row_font)
            item3.setText(file_obj.size)
            package.widget.setItem(index, 1, item3)

            # =============文件类型
            item2 = QTableWidgetItem()
            # item2.setFont(self.fileInfoWidget.global_row_font)
            # fileType = provider.type(QFileInfo(abs_file_path))
            item2.setText(file_obj.type)
            package.widget.setItem(index, 2, item2)

            # ============最后修改时间
            item1 = QTableWidgetItem()
            # item1.setFont(self.fileInfoWidget.global_row_font)
            # mtime = os.path.getmtime(abs_file_path)
            item1.setText(file_obj.last_time)
            package.widget.setItem(index, 3, item1)
        return True
예제 #34
0
 def _update_dictionaries(self, config_dictionaries=None, loaded_dictionaries=None,
                          reverse_order=None, record=True, save=True,
                          reset_undo=False, keep_selection=True):
     if reverse_order is None:
         reverse_order = self._reverse_order
     if config_dictionaries is None:
         config_dictionaries = self._config_dictionaries
     if config_dictionaries == self._config_dictionaries and \
        reverse_order == self._reverse_order and \
        loaded_dictionaries is None:
         return
     if save:
         self._engine.config = { 'dictionaries': config_dictionaries }
     if record:
         self._states.append(self._config_dictionaries)
         self.action_Undo.setEnabled(True)
     if keep_selection:
         selected = [
             self._config_dictionaries[row].path
             for row in self._get_selection()
         ]
     self._config_dictionaries = config_dictionaries
     if loaded_dictionaries is None:
         loaded_dictionaries = self._loaded_dictionaries
     else:
         self._loaded_dictionaries = loaded_dictionaries
     self._reverse_order = reverse_order
     self._updating = True
     self.table.setRowCount(len(config_dictionaries))
     favorite_set = False
     for n, dictionary in enumerate(config_dictionaries):
         row = n
         if self._reverse_order:
             row = len(config_dictionaries) - row - 1
         item = QTableWidgetItem(dictionary.short_path)
         item.setFlags((item.flags() | Qt.ItemIsUserCheckable) & ~Qt.ItemIsEditable)
         item.setCheckState(Qt.Checked if dictionary.enabled else Qt.Unchecked)
         item.setToolTip(dictionary.path)
         self.table.setItem(row, 0, item)
         item = QTableWidgetItem(str(n + 1))
         if dictionary.path not in loaded_dictionaries:
             icon = 'loading'
         else:
             d = loaded_dictionaries.get(dictionary.path)
             if isinstance(d, ErroredDictionary):
                 icon = 'error'
                 item.setToolTip(str(d.exception))
             elif d.readonly:
                 icon = 'readonly'
             elif not favorite_set and dictionary.enabled:
                 icon = 'favorite'
                 favorite_set = True
             else:
                 icon = 'normal'
         item.setIcon(QIcon(':/dictionary_%s.svg' % icon))
         self.table.setVerticalHeaderItem(row, item)
     if keep_selection:
         row_list = []
         for path in selected:
             for n, d in enumerate(config_dictionaries):
                 if d.path == path:
                     row_list.append(n)
                     break
         self._set_selection(row_list)
     if reset_undo:
         self.action_Undo.setEnabled(False)
         self._states = []
     self._updating = False
     self.on_selection_changed()
예제 #35
0
파일: qt.py 프로젝트: japareaggae/smtracker
    def init_table(self):
        """Generates a table with the song scores."""

        # Prepare table for inserting items
        self.table.clearContents()
        self.table.setSortingEnabled(False)

        # Current table row
        current_row = 0
        for song in self.stats.find("SongScores"):
            # Current table row
            current_column = 0

            # Get the song's group and title
            # location[0] should always be "Songs"
            location = song.attrib['Dir'].split('/')

            # Create group cell
            group = QTableWidgetItem(location[1])
            self.table.setItem(current_row, current_column, group)
            current_column = current_column + 1

            # Create title cell
            title = QTableWidgetItem(location[2])
            self.table.setItem(current_row, current_column, title)
            current_column = current_column + 1

            # step_counter will be used for traversing the scores in a song
            step_counter = 0
            for diff in self.difficulties:
                try:
                    if (song[step_counter].attrib['Difficulty'] == diff and
                        song[step_counter].attrib['StepsType'] == self.mode):
                        try:
                            grade = smformat.highscore_grade(song[step_counter], self.theme)
                            percent = float(parse.highscore_stat(song[step_counter], "PercentDP")) * 100
                            if self.theme == "sm5" and self.icons_enabled is True:
                                cell = QTableWidgetItem('{:.2f}%'.format(percent))
                                cell.setIcon(QIcon(smtracker.__path__[0] + '/images/' + grade + '.png'))
                            else:
                                cell = QTableWidgetItem('{} ({:.2f}%)'.format(grade, percent))

                            # Get the timings for our song
                            timings = parse.highscore_timings(song[step_counter])

                            # TODO: Figure out if there's a cleaner way of
                            # doing this
                            tooltip = """Marvelous: {}
Perfect: {}
Great: {}
Good: {}
Boo: {}
Miss: {}
-----
Modifiers: {}
-----
SN2 Score: {}
DDRA Score: {}
IIDX EX Score: {}""".format(timings['W1'], timings['W2'], timings['W3'], timings['W4'],
                   timings['W5'], timings['Miss'],
                   parse.highscore_stat(song[step_counter], "Modifiers"),
                   parse.calculate_score_supernova2(song[step_counter]),
                   parse.calculate_score_ddra(song[step_counter]),
                   parse.calculate_score_iidx(song[step_counter]))
                            cell.setToolTip(tooltip)
                            self.table.setItem(current_row, current_column, cell)
                        # This exception is reached if a Song was played, but
                        # has no score (AutoPlay, PlayerAutoPlay)
                        except AttributeError:
                            cell = QTableWidgetItem()
                            self.table.setItem(current_row, current_column, cell)
                        step_counter = step_counter + 1
                    # If there are no scores for the current difficulty,
                    # add an empty cell instead
                    else:
                        cell = QTableWidgetItem()
                        self.table.setItem(current_row, current_column, cell)
                # This exception is reached if we already reached the last
                # score on a song (using step_counter)
                except IndexError:
                    cell = QTableWidgetItem()
                    self.table.setItem(current_row, current_column, cell)
                current_column = current_column + 1
            current_row = current_row + 1

        # Final table adjustments
        self.table.resizeColumnsToContents()
        self.table.setSortingEnabled(True)
        self.table.sortByColumn(0, Qt.AscendingOrder)