Пример #1
0
class PlaylistsTable(QTableWidget):
    switch_to_this_playlist_signal = pyqtSignal(int)
    add_a_playlist_signal = pyqtSignal()
    rename_a_playlist_signal = pyqtSignal(int)
    delete_a_playlist_signal = pyqtSignal(int)
    def __init__(self, parent=None):
        super(PlaylistsTable, self).__init__(parent)
        self.set_attritutes()
        self.playlistOperator = PlaylistOperator(self)
        self.playlistOperator.setGeometry(0, 40, 270, 40)
        self.create_connections()  
        
    def set_attritutes(self):
        self.setMouseTracking(True)
        self.horizontalHeader().setVisible(False)
        self.verticalHeader().setVisible(False)
        self.setShowGrid(False)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setRowCount(0)    
        self.setColumnCount(1)
        self.setColumnWidth(0, 270)
    
    def create_connections(self):
        self.cellEntered.connect(self.cell_entered)
        self.playlistOperator.clicked_signal.connect(self.switch_to_this_playlist_signal.emit)
        self.playlistOperator.add_button_clicked_signal.connect(self.add_a_playlist_signal.emit)
        self.playlistOperator.rename_button_clicked_signal.connect(self.rename_a_playlist_signal.emit)
        self.playlistOperator.delete_button_clicked_signal.connect(self.delete_a_playlist_signal.emit)
        self.playlistOperator.wheel_event_triggered_signal.connect(self.wheelEvent)
    
    def cell_entered(self, row, column):
        self.playlistOperator.set_row(row)
        scrollBar = self.verticalScrollBar()
        scrolledValue = scrollBar.value()
#        if scrolledValue and scrolledValue == scrollBar.maximum():
#            scrolledValue -= 1
        self.playlistOperator.setGeometry(0, (row - scrolledValue)*self.rowHeight(row), 270, 40)

    def add_item(self, playlistName):
        countRow = self.rowCount()
        playlistItem = QTableWidgetItem(QIcon(IconsHub.PlaylistFold), playlistName)
        self.insertRow(countRow)
        self.setRowHeight(countRow, 40)
        self.setItem(countRow, 0, playlistItem)
    
    def get_name_at(self, row):
        return self.item(row, 0).text()
    
    def rename_an_item(self, row, newName):
        self.item(row, 0).setText(newName)
    
    def remove_item_at(self, row):
        if row == self.rowCount() - 1:
            self.cell_entered(row - 1, 0)
        self.removeRow(row)
Пример #2
0
 def __init__(self, parent=None):
     super(PlaylistsTable, self).__init__(parent)
     self.set_attritutes()
     self.playlistOperator = PlaylistOperator(self)
     self.playlistOperator.setGeometry(0, 40, 270, 40)
     self.create_connections()
Пример #3
0
class PlaylistsTable(QTableWidget):
    switch_to_this_playlist_signal = pyqtSignal(int)
    add_a_playlist_signal = pyqtSignal()
    rename_a_playlist_signal = pyqtSignal(int)
    delete_a_playlist_signal = pyqtSignal(int)

    def __init__(self, parent=None):
        super(PlaylistsTable, self).__init__(parent)
        self.set_attritutes()
        self.playlistOperator = PlaylistOperator(self)
        self.playlistOperator.setGeometry(0, 40, 270, 40)
        self.create_connections()

    def set_attritutes(self):
        self.setMouseTracking(True)
        self.horizontalHeader().setVisible(False)
        self.verticalHeader().setVisible(False)
        self.setShowGrid(False)
        self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.setRowCount(0)
        self.setColumnCount(1)
        self.setColumnWidth(0, 270)

    def create_connections(self):
        self.cellEntered.connect(self.cell_entered)
        self.playlistOperator.clicked_signal.connect(
            self.switch_to_this_playlist_signal.emit)
        self.playlistOperator.add_button_clicked_signal.connect(
            self.add_a_playlist_signal.emit)
        self.playlistOperator.rename_button_clicked_signal.connect(
            self.rename_a_playlist_signal.emit)
        self.playlistOperator.delete_button_clicked_signal.connect(
            self.delete_a_playlist_signal.emit)
        self.playlistOperator.wheel_event_triggered_signal.connect(
            self.wheelEvent)

    def cell_entered(self, row, column):
        self.playlistOperator.set_row(row)
        scrollBar = self.verticalScrollBar()
        scrolledValue = scrollBar.value()
        #        if scrolledValue and scrolledValue == scrollBar.maximum():
        #            scrolledValue -= 1
        self.playlistOperator.setGeometry(0, (row - scrolledValue) *
                                          self.rowHeight(row), 270, 40)

    def add_item(self, playlistName):
        countRow = self.rowCount()
        playlistItem = QTableWidgetItem(QIcon(IconsHub.PlaylistFold),
                                        playlistName)
        self.insertRow(countRow)
        self.setRowHeight(countRow, 40)
        self.setItem(countRow, 0, playlistItem)

    def get_name_at(self, row):
        return self.item(row, 0).text()

    def rename_an_item(self, row, newName):
        self.item(row, 0).setText(newName)

    def remove_item_at(self, row):
        if row == self.rowCount() - 1:
            self.cell_entered(row - 1, 0)
        self.removeRow(row)
Пример #4
0
 def __init__(self, parent=None):
     super(PlaylistsTable, self).__init__(parent)
     self.set_attritutes()
     self.playlistOperator = PlaylistOperator(self)
     self.playlistOperator.setGeometry(0, 40, 270, 40)
     self.create_connections()