السلام عليكــم ورحمـة الله وبركاتــه ،،
في لغات مايكروسوفت هناك اداة اسمها Tab لتقسيم الفورم ،
كما في الصورة
ابحث عن شيئ يقابله في ال wxPython لكني لم اجد.
السلام عليكــم ورحمـة الله وبركاتــه ،،
في لغات مايكروسوفت هناك اداة اسمها Tab لتقسيم الفورم ،
كما في الصورة
ابحث عن شيئ يقابله في ال wxPython لكني لم اجد.
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
استخدم wx.Notebook
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
و هذا مثال عن wx.Notebook يوضح كيفية استخدامها
1 import wx 2 3 4 # Some classes to use for the notebook pages. Obviously you would 5 # want to use something more meaningful for your application, these 6 # are just for illustration. 7 8 class PageOne(wx.Panel): 9 def __init__(self, parent): 10 wx.Panel.__init__(self, parent) 11 t = wx.StaticText(self, -1, "This is a PageOne object", (20,20)) 12 13 class PageTwo(wx.Panel): 14 def __init__(self, parent): 15 wx.Panel.__init__(self, parent) 16 t = wx.StaticText(self, -1, "This is a PageTwo object", (40,40)) 17 18 class PageThree(wx.Panel): 19 def __init__(self, parent): 20 wx.Panel.__init__(self, parent) 21 t = wx.StaticText(self, -1, "This is a PageThree object", (60,60)) 22 23 24 class MainFrame(wx.Frame): 25 def __init__(self): 26 wx.Frame.__init__(self, None, title="Simple Notebook Example") 27 28 # Here we create a panel and a notebook on the panel 29 p = wx.Panel(self) 30 nb = wx.Notebook(p) 31 32 # create the page windows as children of the notebook 33 page1 = PageOne(nb) 34 page2 = PageTwo(nb) 35 page3 = PageThree(nb) 36 37 # add the pages to the notebook with the label to show on the tab 38 nb.AddPage(page1, "Page 1") 39 nb.AddPage(page2, "Page 2") 40 nb.AddPage(page3, "Page 3") 41 42 # finally, put the notebook in a sizer for the panel to manage 43 # the layout 44 sizer = wx.BoxSizer() 45 sizer.Add(nb, 1, wx.EXPAND) 46 p.SetSizer(sizer) 47 48 49 if __name__ == "__main__": 50 app = wx.App() 51 MainFrame().Show() 52 app.MainLoop()
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
للأسف تواجهني مشكل في تكوين ال tabs
كما في الصورة
ال tab الخاص ب Mem. Info يتكون بصورة صحيحة اما الخاص بال processes لا تظهر محتوياته
هذا هو الكلاس الخاص بالبروسيس
class Processes(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) hbox = wx.BoxSizer(wx.HORIZONTAL) panel = wx.Panel(self, -1) self.list = wx.ListCtrl(panel, -1, style=wx.LC_REPORT) self.list.InsertColumn(0, 'PName', width=140) self.list.InsertColumn(1, 'PID', width=130) for task in get_task_list(): index = self.list.InsertStringItem(sys.maxint, task.name) self.list.SetStringItem(index, 1, task.pid) hbox.Add(self.list, 1, wx.EXPAND) panel.SetSizer(hbox) #self.Centre() # self.Show(True)
ثم الاضافة
class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Task Manager") p = wx.Panel(self) nb = wx.Notebook(p) page1 = Processes(nb) page2 = DispMemInfo(nb) nb.AddPage(page1, "Processes") nb.AddPage(page2, "Mem. Info.") sizer = wx.BoxSizer() sizer.Add(nb, 1, wx.EXPAND) p.SetSizer(sizer) # self.page1.SetFocus() #self.Centre() #self.Show() if __name__ == "__main__": app = wx.App() MainFrame().Show() app.MainLoop()
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ
المشكلة عندك انك ورثت كلاس من wx.Panel قشطا؟ عملت هنا حاجة مش ليها معنى
self.list = wx.ListCtrl(panel, -1, style=wx.LC_REPORT)
لأنك already فى panel مش لازم تكريت واحدة وتحددها ل listctrl كان ممكن تخليها self مثلا
ثم انك مش حددت الsizer ل self اساسا اللى انت حددته كان ل panel !
عدله لكدا
class Processes(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) vbox = wx.BoxSizer(wx.VERTICAL) self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT) self.list.InsertColumn(0, 'PName', width=140) self.list.InsertColumn(1, 'PID', width=130) vbox.Add(self.list, 1, wx.EXPAND) for task in get_task_list(): index = self.list.InsertStringItem(sys.maxint, task.name) self.list.SetStringItem(index, 1, task.pid) self.SetSizer(vbox)
تم تعديل هذه المشاركة بواسطة ahmed_youssef في 20 سبتمبر 2009 في 21:29
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
الله يبارك فيك.
تمام ،، مشي الحال ،،
كما تعلم لسه مبتدئ ب wx
اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ