اذهب إلى المحتوى
  • 0

مشكلة مكتبة winsound في بايثون لا تشغل الصوت

إبراهيم أحمد3

السؤال

السلام عليكم.
المشكلة في هذا الكود أنه كان يشغل الصوت yes.wav في حال تحقق الشرط الموجود في دالة onsend حتى قمت بإضافة الشرط الثاني في حال كانت الإجابة خطأ, أصبح الصوتَيْن لا يعملان.
الكود:
```

import wx
import winsound

enletters= ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

class len(wx.Frame):
    def __init__(self, parent):
        super(len,self).__init__(parent,-1, title= 'النظام التعليمي, الأحرف الإنجليزية المرتبة')
        self.p = wx.Panel(self,-1)
        self.lettern= (0)
        self.letter= (enletters[self.lettern])
        wx.StaticText(self.p, -1, "الإجابات: ")
        self.verify = wx.TextCtrl(self.p, -1, style=wx.TE_READONLY+wx.TE_MULTILINE+wx.HSCROLL)

        self.wt= wx.StaticText(self.p, -1, f"اكتب حرف  {self.letter}  ")
        self.write = wx.TextCtrl(self.p, -1)
        self.write.SetFocus()

        self.send= wx.Button(self.p, -1, "إرسال الإجابة")
        self.send.Bind(wx.EVT_BUTTON, self.onsend)

        self.Show()

    def onsend(self, event):
        self.result= self.write.GetValue()
        if self.result == self.letter:
            self.verify.write(f'صحيح {self.letter}')
            winsound.PlaySound('data\yes.wav', 1)
            if self.lettern == 25:
                self.lettern= (0)
            else:
                self.lettern= self.lettern+1

            self.letter= (enletters[self.lettern])
            self.wt.SetLabel(f"اكتب حرف {self.letter} ")
            self.write.SetFocus()
            self.write.SetValue("")

        if self.result != self.letter:
            self.verify.write(f'خطأ {self.letter}')
            winsound.PlaySound('data\no.wav', 1)
            self.write.SetFocus()
            self.write.SetValue("")

app = wx.App()
len(None)
app.MainLoop()


```

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1
بتاريخ 4 ساعة قال إبراهيم أحمد3:

السلام عليكم.
المشكلة في هذا الكود أنه كان يشغل الصوت yes.wav في حال تحقق الشرط الموجود في دالة onsend حتى قمت بإضافة الشرط الثاني في حال كانت الإجابة خطأ, أصبح الصوتَيْن لا يعملان.
الكود:
```

import wx
import winsound

enletters= ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

class len(wx.Frame):
    def __init__(self, parent):
        super(len,self).__init__(parent,-1, title= 'النظام التعليمي, الأحرف الإنجليزية المرتبة')
        self.p = wx.Panel(self,-1)
        self.lettern= (0)
        self.letter= (enletters[self.lettern])
        wx.StaticText(self.p, -1, "الإجابات: ")
        self.verify = wx.TextCtrl(self.p, -1, style=wx.TE_READONLY+wx.TE_MULTILINE+wx.HSCROLL)

        self.wt= wx.StaticText(self.p, -1, f"اكتب حرف  {self.letter}  ")
        self.write = wx.TextCtrl(self.p, -1)
        self.write.SetFocus()

        self.send= wx.Button(self.p, -1, "إرسال الإجابة")
        self.send.Bind(wx.EVT_BUTTON, self.onsend)

        self.Show()

    def onsend(self, event):
        self.result= self.write.GetValue()
        if self.result == self.letter:
            self.verify.write(f'صحيح {self.letter}')
            winsound.PlaySound('data\yes.wav', 1)
            if self.lettern == 25:
                self.lettern= (0)
            else:
                self.lettern= self.lettern+1

            self.letter= (enletters[self.lettern])
            self.wt.SetLabel(f"اكتب حرف {self.letter} ")
            self.write.SetFocus()
            self.write.SetValue("")

        if self.result != self.letter:
            self.verify.write(f'خطأ {self.letter}')
            winsound.PlaySound('data\no.wav', 1)
            self.write.SetFocus()
            self.write.SetValue("")

app = wx.App()
len(None)
app.MainLoop()


```

مرحبا ابراهيم،

سبب عدم عمل الصوت هو المسار الذي وضعته لملف الصوت:

winsound.PlaySound('data\yes.wav', 1)

إذ يجب عليك كتابته على الشكل التالي:

winsound.PlaySound('data\\yes.wav', 1)

كما يجب عمل elif في الشرط الثاني:

if self.result != self.letter: #هنا
 
elif self.result != self.letter: # الأصح

بالتوفيق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 19 ساعة قال مسعود زاهي:

مرحبا ابراهيم،

سبب عدم عمل الصوت هو المسار الذي وضعته لملف الصوت:

winsound.PlaySound('data\yes.wav', 1)

إذ يجب عليك كتابته على الشكل التالي:

winsound.PlaySound('data\\yes.wav', 1)

كما يجب عمل elif في الشرط الثاني:

if self.result != self.letter: #هنا
 
elif self.result != self.letter: # الأصح

بالتوفيق.

شكرا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...