Bu proje üzerinde pek çok sıkıntılar gidermiştim başka bir konuda yardımlarınız sayesinde.
Şimdi biraz daha değiştirmek istedim.
Şuan çalıştırdığınız zaman “5dakika” butonu anında çalışacaktır. Sorunu üzerinde uğraşabilmemiz için bu şekilde yaptım.
Sorun şu ki :
Dakikalardan herhangi birinin süresi bittiğinde bir müzik çalıyor ( alarm misali ).
Bu müziği manuel olarak durdurabilmek istediğim için buna özel bir buton oluşturdum (“stopbutton”)
Arayüzde “Müziği Durdur” Şeklinde göreceksiniz bu butonu.
Benim buna bastığım zaman normalde müziğin durması lazım fakat bunu bir türlü ayarlayamadım.
Şuanki hali yapabildiğimiz en iyi hali diyebilirim. Hiç bir işlevi yok yani butonun şu anda.
Yardımcı olursanız sevinirim.
Sadece bu (self.stopbutton / “Müziği Durdur”) butonu çalışır hale getirmek istiyorum
şu kısımdaki
yerini self.wave_obj.play() şeklinde çalıştırmayı denedim. Ancak bu müziğin direkt çalışmasına sebep oldu. Açar açmaz.
Ve dakikalar işlevsiz hale geldi.
kısmının içinde :
Artı olarak şöyle gördüğünüz kısımlardaki “play_obj” kodunun sonuna parantez gelmesi gerekiyor.
Müziğin çalışması için.
Bu konuyu açana kadar uğraştığım kısımlarda bu netliklere ulaştım.
self.play_obj = self.wave_obj.play"“parantezsiz”" olması lazım
lambda:self.play_obj"“parantezli”" olması lazım
Bu bilgileri de ekleyeyim dedim daha rahat yardımcı olabilirsiniz belki diye.
Şimdiden teşekkür ediyorum
import sys
from PyQt5 import QtWidgets
import simpleaudio as sa
from PyQt5.QtCore import QTimer
class pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_ui()
self.timer = QTimer()
self.wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
self.play_obj = self.wave_obj.play
self.Timer = QTimer()
def init_ui(self):
self.yazialani = QtWidgets.QLabel("Pomodoro İçin Hangi İşlemi Uygulayacaksınız ?")
self.button1 = QtWidgets.QRadioButton("25 Dakika")
self.button2 = QtWidgets.QRadioButton("5 Dakika")
self.button3 = QtWidgets.QRadioButton("20 Dakika")
self.stopbutton = QtWidgets.QRadioButton("Müziği Durdur")
self.start = QtWidgets.QPushButton("Başlat")
v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.yazialani)
v_box.addWidget(self.button1)
v_box.addWidget(self.button2)
v_box.addWidget(self.button3)
v_box.addWidget(self.stopbutton)
v_box.addWidget(self.start)
v_box.addStretch()
h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addLayout(v_box)
h_box.addStretch()
self.setLayout(h_box)
self.start.clicked.connect(lambda : self.click(self.button1.isChecked() , self.button2.isChecked() , self.button3.isChecked() , self.stopbutton.isChecked() , self.yazialani) )
def click(self,button1,button2,button3,yazialani,stopbutton):
if button1:
self.Timer.stop()
self.Timer.singleShot(1500000, lambda:self.play_obj())
self.yazialani.setText("25 Dakikalık İşlem Başlatıldı")
if button2:
self.Timer.stop()
self.Timer.singleShot(1, lambda:self.play_obj())
self.yazialani.setText("5 Dakikalık İşlem Seçildi")
if button3:
self.Timer.stop()
self.Timer.singleShot(900000, lambda:self.play_obj())
self.yazialani.setText("20 Dakikalık İşlem Seçildi")
if stopbutton:
self.play_obj().stop()
app = QtWidgets.QApplication(sys.argv)
window = pencere()
window.setStyleSheet("background:rgb(247,209,150);")
window.setWindowTitle("Pomodoro")
window.show()
sys.exit(app.exec_())