PyQt5 projem İle alakalı bir sorun var

self’i de tamamladım. Şuan sadece QTimer kaldı. Fakat QTimer’ı Nasıl uyarlayacağımı anlayamadığım.

mesela click1’e gelip sizin yazdığınız satırı denedim.

QTimer() Bulunamadı diyor.
Şuan son hali bu şekilde. Attığınız linki inceledim fakat yine anlamadım :smiley:

QTimer’ı nasıl çağıracağım ve nereye yazmam lazım biraz daha detay verir misiniz
Muhtemelen clicklere yazarız diye oraları boş bıraktım.

import sys
from PyQt5 import QtWidgets
import simpleaudio as sa





class pencere(QtWidgets.QWidget):

    def __init__(self):
        
        super().__init__()
        self.init_ui()










    def init_ui(self):
        self.yazialani = QtWidgets.QLabel("Pomodoro İçin Hangi İşlemi Uygulayacaksınız ?")
        self.button1 = QtWidgets.QPushButton("25 Dakika")
        self.button2 = QtWidgets.QPushButton("5 Dakika")
        self.button3 = QtWidgets.QPushButton("20 Dakika")
        self.stopbutton = QtWidgets.QPushButton("Stop Music")
      


        
        
        
        

        v_box = QtWidgets.QVBoxLayout()
        v_box.addWidget(self.button1)
        v_box.addWidget(self.button2)
        v_box.addWidget(self.button3) 
        v_box.addWidget(self.yazialani)
        v_box.addWidget(self.stopbutton)
        v_box.addStretch()

        h_box = QtWidgets.QHBoxLayout()
        h_box.addStretch()
        h_box.addLayout(v_box)
        h_box.addStretch()

        self.setLayout(h_box)

        self.button1.clicked.connect(self.click1)
        self.button2.clicked.connect(self.click2)
        self.button3.clicked.connect(self.click3)
        self.stopbutton.clicked.connect(self.click4)
        

        


    def click1(self):
       self.timer = QTimer()
       self.timer.timeout.connect(lambda:print("Ateşlendi"))
       self.timer.start(1000)
        
        

        

        
        

       wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
       self.stopobject = wave_obj.play()
        
        
        

    def click2(self):
        
        
        

        

        wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
        self.stopobject = wave_obj.play()
        


    def click3(self):
        
        
        


        wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
        self.stopobject = wave_obj.play()




    def click4(self):
        
        self.stopobject.stop()

        


    


    


app = QtWidgets.QApplication(sys.argv)
window = pencere()
window.setStyleSheet("background:rgb(247,209,150);")

window.show()
sys.exit(app.exec_())




import sys
from PyQt5 import QtWidgets
import simpleaudio as sa





class pencere(QtWidgets.QWidget):

    def __init__(self):
        
        super().__init__()
        self.init_ui()










    def init_ui(self):
        self.yazialani = QtWidgets.QLabel("Pomodoro İçin Hangi İşlemi Uygulayacaksınız ?")
        self.button1 = QtWidgets.QPushButton("25 Dakika")
        self.button2 = QtWidgets.QPushButton("5 Dakika")
        self.button3 = QtWidgets.QPushButton("20 Dakika")
        self.stopbutton = QtWidgets.QPushButton("Stop Music")
      


        
        
        
        

        v_box = QtWidgets.QVBoxLayout()
        v_box.addWidget(self.button1)
        v_box.addWidget(self.button2)
        v_box.addWidget(self.button3) 
        v_box.addWidget(self.yazialani)
        v_box.addWidget(self.stopbutton)
        v_box.addStretch()

        h_box = QtWidgets.QHBoxLayout()
        h_box.addStretch()
        h_box.addLayout(v_box)
        h_box.addStretch()

        self.setLayout(h_box)

        self.button1.clicked.connect(self.click1)
        self.button2.clicked.connect(self.click2)
        self.button3.clicked.connect(self.click3)
        self.stopbutton.clicked.connect(self.click4)
        

        


    def click1(self):
       self.timer = QTimer()
       self.timer.timeout.connect(lambda:print("Ateşlendi"))
       self.timer.start(1000)
        
        

        

        
        

       wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
       self.stopobject = wave_obj.play()
        
        
        

    def click2(self):
        
        
        

        

        wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
        self.stopobject = wave_obj.play()
        


    def click3(self):
        
        
        


        wave_obj = sa.WaveObject.from_wave_file("C:/Users/taylan öztürk/Desktop/NCS/Alan Walker/Wav/Force.wav")
        self.stopobject = wave_obj.play()




    def click4(self):
        
        self.stopobject.stop()

        


    


    


app = QtWidgets.QApplication(sys.argv)
window = pencere()
window.setStyleSheet("background:rgb(247,209,150);")

window.show()
sys.exit(app.exec_())

Hocam konuyu çözdünüz mü bilmiyorum. Gönderiyide çok okumadım fakat pyqt5 de donma hatasını bende yaşamıştım. Yaptığım işlemleri parçalayarak yapmıştım. Müziklerin üst üste binmemesi için: Müziği durdurmayı deneyip durdurulamassa çalıştırmayı deneyerek çözebileceğini düşünüyorum

Şuanda müziği çözdük. Fakat sanırım time.sleep() ile dakikaları çalıştırmaya çalıştığım için 25 dakika butonu veya diğer 2 zaman butonunu çalıştırdığımda alttaki yazıda “x süre sonra alarm çalacaktır”
yazmıyor.

Evet, benimde ilk aklıma gelen yöntem bu oldu. Ancak şöyle bir sorun var;
Ses dosyası sadece oynatılıyorsa, durdurulabiliyor. 1,2,3,4 tane butonumuz var. Kullanıcının öncelikle hangisine basacağını bilmiyoruz, bilemeyiz. Diyelim ki 1. butona bastı. 5 dakikalık süre geçti ve ses dosyası oynatıldı, her şey güzel. Ardından 3. butona basıldı ve 25 dakikalık süre geçti, ses dosyası oynatılacak. Bundan önce ses dosyası hali hazırda oynatılıyor mu bilmemiz gerek. Kontrolü sağlıyoruz, oynatılıyorsa durdurulup tekrar başlatılıyor. Sorun yok gibi değil mi? maalesef var.

Ses dosyasının oynatılıp oynatılmadığı kontrolünü tüm fonksiyonlara (butonlara) uygulamalıyız. stop() metodu başlangıçta ses dosyası oynatılmadığı için kullanılamıyor. Kullanırsanız hata verir. Ses dosyası oynatılıyor olmalı. Başlangıçta da ses dosyası oynatılmadığı için daha ilk butona bastığımız anda hata verir.

1 Beğeni

Neden bana sürekli aynı şeyi yazdırıyorsunuz?

Hem benim hem diğer forum üyelerinin zamanını boşa harcıyorsunuz. Ben oturup sizin için sıfırdan kod yazıyorum, size incelemeye bile tenezzül etmiyorsunuz.
Lütfen bu tutumdan vazgeçin.

Bkz. PyQt5 projem İle alakalı bir sorun var - ggns7 tarafından #29

2 Beğeni

Bu probleminizi ufak bir internet araması ile halledebileceğinizi düşünüyorum.

Hata durumunda hatayı yakalayıp durdurma işlemini atlamanızın bir sakıncası var mı ki?

2 Beğeni

Hayır, yok. Hiç aklıma gelmedi, teşekkürler :slight_smile:
@ertugrulcakici

1 Beğeni

çok çok özür dilerim benim şapşallığım. İmport kısmını fark etmemişim. Şuan uyguluyorum

Evet şuan oldu. Çok emek harcadınız vakit ayırdınız. Bunun için size çok teşekkür ederim.

haklısınız. İmport kısmını fark etmediğim için böyle yazmıştım.
Affedin.

affetmediniz belki ama yine de iyi geceler dilerim. Tekrar kusuruma bakmayın :frowning:

Rica ederim, affedilecek bir durum yok. Affetmek, affedilmek benim için çok ağır kelimeler; canımı sıkıyor.
Yapmanız gereken tek şey; biri size yardımcı olmaya çalıştığında söylediklerini kaale almak ve biraz da çabalamak.

1 Beğeni