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

كيف يتم تنفيذ زر تلقائيًا عند الوصول إلى عدد معين من الأحرف في مربع wxpython؟

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

السؤال

السلام عليكم.
كيف يتم تنفيذ زر تلقائيًا عند الوصول إلى عدد معين من الأحرف التي تم إدخالها ، مثل أرقام pin؟

لغة البرمجة: بايثون.

المكتبة: wx(wxpython).

 

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

Recommended Posts

  • 0

بعيدًا عن أسلوبك في الرد، الكود كمثال لك، فإن كنت على غير علم بلغة بايثون فلن تتمكن من القيام بالتعديل عليه لتنفيذ ما تريده، من فضلك، قم بتوفير الكود الذي يوجد به مشكلة لديك لتوفير حل لمشكلتك.

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

  • 0
بتاريخ 2 ساعة قال Mustafa Suleiman:

بعيدًا عن أسلوبك في الرد، الكود كمثال لك، فإن كنت على غير علم بلغة بايثون فلن تتمكن من القيام بالتعديل عليه لتنفيذ ما تريده، من فضلك، قم بتوفير الكود الذي يوجد به مشكلة لديك لتوفير حل لمشكلتك.

 

يا أستاذي انا على علم بلغة بايثون, لكني قمت مبدئيا بنسخ الكود وتنفيذه وكتبت رقم بكل مربع ولم يتنفذ زر ok تلقائيا بعد كتابتي للرقم الأخير.

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

  • -1

أهلا بك يا إبراهيم.

من خلال هذا المثال يمكنك إنشاء dialog box لإدخال 3 أرقام أو أحرف لتفعيل رمز الـ PIN.

import wx

class PinDialog(wx.Dialog):
    def __init__(self, parent, title):
        wx.Dialog.__init__(self, parent, title=title)

        self.pin = ""

        # create the text entry boxes
        self.pin_textctrl1 = wx.TextCtrl(self, style=wx.TE_PASSWORD)
        self.pin_textctrl2 = wx.TextCtrl(self, style=wx.TE_PASSWORD)
        self.pin_textctrl3 = wx.TextCtrl(self, style=wx.TE_PASSWORD)

        # create the OK and Cancel buttons
        self.ok_button = wx.Button(self, label="OK")
        self.cancel_button = wx.Button(self, label="Cancel")

        # bind the buttons to their event handlers
        self.ok_button.Bind(wx.EVT_BUTTON, self.on_ok)
        self.cancel_button.Bind(wx.EVT_BUTTON, self.on_cancel)

        # create a sizer to layout the widgets
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(wx.StaticText(self, label="Enter your PIN:"), flag=wx.CENTER|wx.TOP, border=10)
        sizer.Add(wx.StaticLine(self), flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=10)
        sizer.Add(self.pin_textctrl1, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(self.pin_textctrl2, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(self.pin_textctrl3, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(wx.StaticLine(self), flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=10)
        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        button_sizer.Add(self.ok_button, flag=wx.CENTER|wx.ALL, border=5)
        button_sizer.Add(self.cancel_button, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(button_sizer, flag=wx.CENTER|wx.ALL, border=10)
        self.SetSizer(sizer)
        sizer.Fit(self)

    def on_ok(self, event):
        # get the values from the text entry boxes
        self.pin = self.pin_textctrl1.GetValue() + self.pin_textctrl2.GetValue() + self.pin_textctrl3.GetValue()
        self.EndModal(wx.ID_OK)

    def on_cancel(self, event):
        self.EndModal(wx.ID_CANCEL)

    def get_pin(self):
        return self.pin

# create the wx.App object
app = wx.App()

# create the main window
frame = wx.Frame(None, title="Pin Dialog")

# create the dialog box and show it
pin_dialog = PinDialog(frame, "Enter Your PIN")
result = pin_dialog.ShowModal()

# get the PIN value and print it to the console
if result == wx.ID_OK:
    pin = pin_dialog.get_pin()
    print("PIN entered:", pin)

# clean up
pin_dialog.Destroy()
frame.Destroy()

# start the main event loop
app.MainLoop()

 

 

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

  • -1
بتاريخ 21 ساعة قال Mustafa Suleiman:

أهلا بك يا إبراهيم.

من خلال هذا المثال يمكنك إنشاء dialog box لإدخال 3 أرقام أو أحرف لتفعيل رمز الـ PIN.

import wx

class PinDialog(wx.Dialog):
    def __init__(self, parent, title):
        wx.Dialog.__init__(self, parent, title=title)

        self.pin = ""

        # create the text entry boxes
        self.pin_textctrl1 = wx.TextCtrl(self, style=wx.TE_PASSWORD)
        self.pin_textctrl2 = wx.TextCtrl(self, style=wx.TE_PASSWORD)
        self.pin_textctrl3 = wx.TextCtrl(self, style=wx.TE_PASSWORD)

        # create the OK and Cancel buttons
        self.ok_button = wx.Button(self, label="OK")
        self.cancel_button = wx.Button(self, label="Cancel")

        # bind the buttons to their event handlers
        self.ok_button.Bind(wx.EVT_BUTTON, self.on_ok)
        self.cancel_button.Bind(wx.EVT_BUTTON, self.on_cancel)

        # create a sizer to layout the widgets
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(wx.StaticText(self, label="Enter your PIN:"), flag=wx.CENTER|wx.TOP, border=10)
        sizer.Add(wx.StaticLine(self), flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=10)
        sizer.Add(self.pin_textctrl1, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(self.pin_textctrl2, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(self.pin_textctrl3, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(wx.StaticLine(self), flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=10)
        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        button_sizer.Add(self.ok_button, flag=wx.CENTER|wx.ALL, border=5)
        button_sizer.Add(self.cancel_button, flag=wx.CENTER|wx.ALL, border=5)
        sizer.Add(button_sizer, flag=wx.CENTER|wx.ALL, border=10)
        self.SetSizer(sizer)
        sizer.Fit(self)

    def on_ok(self, event):
        # get the values from the text entry boxes
        self.pin = self.pin_textctrl1.GetValue() + self.pin_textctrl2.GetValue() + self.pin_textctrl3.GetValue()
        self.EndModal(wx.ID_OK)

    def on_cancel(self, event):
        self.EndModal(wx.ID_CANCEL)

    def get_pin(self):
        return self.pin

# create the wx.App object
app = wx.App()

# create the main window
frame = wx.Frame(None, title="Pin Dialog")

# create the dialog box and show it
pin_dialog = PinDialog(frame, "Enter Your PIN")
result = pin_dialog.ShowModal()

# get the PIN value and print it to the console
if result == wx.ID_OK:
    pin = pin_dialog.get_pin()
    print("PIN entered:", pin)

# clean up
pin_dialog.Destroy()
frame.Destroy()

# start the main event loop
app.MainLoop()

 

 

 

ولكن أنت لم تجيب على سؤالي.

يعني مسوي فيها ذكي عشان قلت مثال pin عملت مربع كأنه باسوورد فقط؟

أنا أريد الإجابة على سؤالي أريد زر ok يتنفذ طالما فيه عدد معين من المدخلات في المربع النصي فقط...

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...