playback speed slider
This commit is contained in:
parent
218bdd3c32
commit
44b29b0566
7
main.py
7
main.py
@ -185,6 +185,9 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
|||||||
lambda: self.player.setPosition(self.playbackSlider.value())
|
lambda: self.player.setPosition(self.playbackSlider.value())
|
||||||
) # sliderReleased works better than sliderMoved
|
) # sliderReleased works better than sliderMoved
|
||||||
self.volumeSlider.sliderMoved[int].connect(lambda: self.volume_changed())
|
self.volumeSlider.sliderMoved[int].connect(lambda: self.volume_changed())
|
||||||
|
self.speedSlider.sliderReleased.connect(
|
||||||
|
lambda: self.speed_changed(self.speedSlider.value())
|
||||||
|
)
|
||||||
self.playButton.clicked.connect(self.on_play_clicked) # Click to play/pause
|
self.playButton.clicked.connect(self.on_play_clicked) # Click to play/pause
|
||||||
self.previousButton.clicked.connect(self.on_previous_clicked)
|
self.previousButton.clicked.connect(self.on_previous_clicked)
|
||||||
self.nextButton.clicked.connect(self.on_next_clicked) # Click to next song
|
self.nextButton.clicked.connect(self.on_next_clicked) # Click to next song
|
||||||
@ -425,6 +428,10 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"main.py volume_changed() | Changing volume error: {e}")
|
logging.error(f"main.py volume_changed() | Changing volume error: {e}")
|
||||||
|
|
||||||
|
def speed_changed(self, rate: int) -> None:
|
||||||
|
"""Handles playback speed changes"""
|
||||||
|
self.player.setPlaybackRate(rate / 50)
|
||||||
|
|
||||||
def on_play_clicked(self) -> None:
|
def on_play_clicked(self) -> None:
|
||||||
"""Updates the Play & Pause buttons when clicked"""
|
"""Updates the Play & Pause buttons when clicked"""
|
||||||
if self.player.state() == QMediaPlayer.State.PlayingState:
|
if self.player.state() == QMediaPlayer.State.PlayingState:
|
||||||
|
|||||||
23
ui.py
23
ui.py
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Form implementation generated from reading ui file 'ui.ui'
|
# Form implementation generated from reading ui file 'ui.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.15.9
|
# Created by: PyQt5 UI code generator 5.15.10
|
||||||
#
|
#
|
||||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||||
# run again. Do not edit this file unless you know what you are doing.
|
# run again. Do not edit this file unless you know what you are doing.
|
||||||
@ -122,7 +122,7 @@ class Ui_MainWindow(object):
|
|||||||
self.hLayoutMusicTable.setStretch(1, 10)
|
self.hLayoutMusicTable.setStretch(1, 10)
|
||||||
self.verticalLayout.addLayout(self.hLayoutMusicTable)
|
self.verticalLayout.addLayout(self.hLayoutMusicTable)
|
||||||
self.verticalLayout.setStretch(0, 1)
|
self.verticalLayout.setStretch(0, 1)
|
||||||
self.verticalLayout.setStretch(1, 10)
|
self.verticalLayout.setStretch(1, 2)
|
||||||
self.verticalLayout_3.addLayout(self.verticalLayout)
|
self.verticalLayout_3.addLayout(self.verticalLayout)
|
||||||
self.hLayoutControls = QtWidgets.QHBoxLayout()
|
self.hLayoutControls = QtWidgets.QHBoxLayout()
|
||||||
self.hLayoutControls.setSpacing(6)
|
self.hLayoutControls.setSpacing(6)
|
||||||
@ -156,12 +156,23 @@ class Ui_MainWindow(object):
|
|||||||
self.volumeSlider.setObjectName("volumeSlider")
|
self.volumeSlider.setObjectName("volumeSlider")
|
||||||
self.hLayoutControls2.addWidget(self.volumeSlider)
|
self.hLayoutControls2.addWidget(self.volumeSlider)
|
||||||
self.verticalLayout_3.addLayout(self.hLayoutControls2)
|
self.verticalLayout_3.addLayout(self.hLayoutControls2)
|
||||||
self.verticalLayout_3.setStretch(0, 10)
|
self.hLayoutControls3 = QtWidgets.QHBoxLayout()
|
||||||
self.verticalLayout_3.setStretch(1, 1)
|
self.hLayoutControls3.setObjectName("hLayoutControls3")
|
||||||
self.verticalLayout_3.setStretch(2, 1)
|
self.speedSlider = QtWidgets.QSlider(self.centralwidget)
|
||||||
|
self.speedSlider.setMinimum(0)
|
||||||
|
self.speedSlider.setMaximum(100)
|
||||||
|
self.speedSlider.setSingleStep(1)
|
||||||
|
self.speedSlider.setProperty("value", 50)
|
||||||
|
self.speedSlider.setOrientation(QtCore.Qt.Horizontal)
|
||||||
|
self.speedSlider.setInvertedAppearance(False)
|
||||||
|
self.speedSlider.setTickPosition(QtWidgets.QSlider.NoTicks)
|
||||||
|
self.speedSlider.setObjectName("speedSlider")
|
||||||
|
self.hLayoutControls3.addWidget(self.speedSlider)
|
||||||
|
self.verticalLayout_3.addLayout(self.hLayoutControls3)
|
||||||
|
self.verticalLayout_3.setStretch(0, 20)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 21))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 41))
|
||||||
self.menubar.setObjectName("menubar")
|
self.menubar.setObjectName("menubar")
|
||||||
self.menuFile = QtWidgets.QMenu(self.menubar)
|
self.menuFile = QtWidgets.QMenu(self.menubar)
|
||||||
self.menuFile.setObjectName("menuFile")
|
self.menuFile.setObjectName("menuFile")
|
||||||
|
|||||||
39
ui.ui
39
ui.ui
@ -17,9 +17,9 @@
|
|||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralwidget">
|
<widget class="QWidget" name="centralwidget">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="10,1,1">
|
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="20,0,0,0">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,10">
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,2">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
@ -279,6 +279,35 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="hLayoutControls3">
|
||||||
|
<item>
|
||||||
|
<widget class="QSlider" name="speedSlider">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="invertedAppearance">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="tickPosition">
|
||||||
|
<enum>QSlider::NoTicks</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenuBar" name="menubar">
|
<widget class="QMenuBar" name="menubar">
|
||||||
@ -287,7 +316,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1152</width>
|
<width>1152</width>
|
||||||
<height>21</height>
|
<height>41</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
@ -315,8 +344,8 @@
|
|||||||
</property>
|
</property>
|
||||||
<addaction name="actionScanLibraries"/>
|
<addaction name="actionScanLibraries"/>
|
||||||
<addaction name="actionDeleteLibrary"/>
|
<addaction name="actionDeleteLibrary"/>
|
||||||
<addaction name="actionDeleteDatabase"/>
|
<addaction name="actionDeleteDatabase"/>
|
||||||
<addaction name="actionSortColumns"/>
|
<addaction name="actionSortColumns"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuEdit"/>
|
<addaction name="menuEdit"/>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user