الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اربط بين Wx و اوامر Python؟

بدأه 3ml في 12 يونيو 2010 · 8 رد · 1,348 مشاهدة · في قسم Cross Platform GUI Libraries العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بدأت منذ ايام في تعلم لغة Python و حللت بعض التمارين من الكتب و لكن البرامج كلها في سطر الاوامر ، و انا اريد صنع برامج بواجهة رسومية.

فبحثت و وجدت عدة مكتبات Qt, Gtk, Wx و اخترت هذه الاخيرة "Wx" و وجدت برنامج لصنع الواجهات هو Wxglade

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.text_ctrl_1 = wx.TextCtrl(self, -1, "")
        self.button_1 = wx.Button(self, -1, "button_1")

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

    def __set_properties(self):
        # begin wxGlade: MyFrame.__set_properties
        self.SetTitle("frame_1")
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame.__do_layout
        sizer_2 = wx.BoxSizer(wx.VERTICAL)
        sizer_2.Add(self.text_ctrl_1, 0, wx.ADJUST_MINSIZE, 0)
        sizer_2.Add(self.button_1, 0, wx.ADJUST_MINSIZE, 0)
        self.SetSizer(sizer_2)
        sizer_2.Fit(self)
        self.Layout()
        # end wxGlade

# end of class MyFrame

if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame_1 = MyFrame(None, -1, "")
    app.SetTopWindow(frame_1)
    frame_1.Show()
    app.MainLoop()

هذا نموذج فورم به مساحة نص و زر

اريد ان اربط بين الزر و مربع النص، مثلا عند الضغط على الزر يكتب في مربع النص كلمة معينة مثلا "Hello" .

هل من فكرة؟

هذا مثال بسيط و لكن اعتقد باني سافهم الطريقة لعمل اشيام أخرى من مجرد حل هذا المثال لان مشكلتي اني لا املك اي فكرة في كيفية الحل...:)

وشكرا.

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#2

غريب تفضيلك wx على Qt

عامة كل اللى انت محتاجه هو تعريف ال Event Handlers ؟

http://www.ojuba.org/wiki/docs/wxpython#%D8%B1%D8%A8%D8%B7_%D8%A7%D9%84%D8%AD%D8%AF%D8%AB

ومن wxGlade هتلاقى لما تضغط على الودجت وهنا ال Button هتلاقى فى tab موجود فى ال property window بإسم events

اختار اسم مناسب لل event handler وبعد كدا اعمل generate

هيتم انشاء الملف فيه حاجة زى كدا

    def OnClicked(self, event): # wxGlade: MyFrame.<event_handler>
        print "Event handler `OnClicked' not implemented!"
        event.Skip()

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 13 يونيو 2010 في 03:05

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

شكرا على الرد و على الرابط المفيد

اقتباس
غريب تفضيلك wx على Qt

اهم سبب بالنسبة لي هو الترخيص

و ثانيا Wx تستعمل ادوات النظام الإفتراضية اما qt فحسب ما اعلم تقوم بتوليد اشكال مشابهة للادوات الافتراضية.

شكرا لك اخي :)

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#4

بخصوص الترخيص فأظنك تقصد ترخيص PyQt مش Qt ..

اطلعت على مشروع PySide ؟

بخصوص عملية الرسم -- ايه المشكلة فى انها ترسم الويدجتس بنفسها ؟

بالتوفيق

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5
اقتباس
بخصوص الترخيص فأظنك تقصد ترخيص PyQt مش Qt ..

اطلعت على مشروع PySide ؟

بالنسبة للترخيص ف Qt رخصتها لا تسمح باستعمالها لصنع برامج تجارية مغلقة المصدر إلا بعد شراء رخصة خاصة

اقتباس
بخصوص عملية الرسم -- ايه المشكلة فى انها ترسم الويدجتس بنفسها ؟

Wx تنتج نوافذ و ادوات اصلية للنظام الذي تعمل عليه..اما Qt ففي بعض الحالات لا تستطيع تقليد الشكل الاصلي للنوافذ و الادوات فتكون غير منسجمة مع شكل النظام...

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#6
اقتباس
بالنسبة للترخيص ف Qt رخصتها لا تسمح باستعمالها لصنع برامج تجارية مغلقة المصدر إلا بعد شراء رخصة خاصة

بعد شراء نوكيا لها تم إضافه رخصه LGPL و بهذا تستطيع أن تنشئ برامج مغلقه و لكنك لن تستطيع أن تغلق المكتبه نفسها.

كنت أتعامل مع Wx و لكن بعد إضافه LGPL فلن أجد أى سبب لأستخدام wx لأن Qt تمتلك ما هو أكثر من نوافذ.

اقتباس
Wx تنتج نوافذ و ادوات اصلية للنظام الذي تعمل عليه..اما Qt ففي بعض الحالات لا تستطيع تقليد الشكل الاصلي للنوافذ و الادوات فتكون غير منسجمة مع شكل النظام...

يمكنك تحديد ما تريد ظهوره من نوافذ فى Qt فيمكنك إعتماد نوافذ النظام أو نوافذها و يمكنك وضع إستايلات لنوافذك.

هل نوافذ الأوفيس الخاص بمايكروسوفت يشبه نوافذ النظام الخاص بها أيضاً smile.gif

forum-signature-01.gif
#7
اقتباس
بعد شراء نوكيا لها تم إضافه رخصه LGPL و بهذا تستطيع أن تنشئ برامج مغلقه و لكنك لن تستطيع أن تغلق المكتبه نفسها.

شكرا على الخبر :) لم اكن اعرف هذا...

اقتباس
يمكنك تحديد ما تريد ظهوره من نوافذ فى Qt فيمكنك إعتماد نوافذ النظام أو نوافذها و يمكنك وضع إستايلات لنوافذك.

هذا ايضا لم اكن اعرفه :)

و اتمنى ان تكون Qt سهلة أيضا...

اذا كان لديك تجربة مع Qt و Wx معا ، فمن الاسهل في التعلّم و الاستعمال برايك؟

شكرا

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#8
اقتباس
اذا كان لديك تجربة مع Qt و Wx معا ، فمن الاسهل في التعلّم و الاستعمال برايك؟

لا أستطيع أن أجاوب على هذا السؤال لأن درجه الصعوبه تتوقف عليك أنت و لكن ما أستطيع أن أذكره هو أن Qt كبيره جداً لأنها تحتوى على عناصر أخرى لا تحتويها wx فهى ليست نوافذ فقط و لكن تعلمها سهل جداً و أنصحك بها

تم تعديل هذه المشاركة بواسطة asm-soft في 15 يونيو 2010 في 15:30

forum-signature-01.gif
#9

شكرا لك أخي :) سأحاول تعلمها...

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png

مواضيع مشابهة