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

ابحث عن ال Tabcontrol في ال Wxpython

بدأه الاخير زمانه في 17 سبتمبر 2009 · 6 رد · 1,010 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

في لغات مايكروسوفت هناك اداة اسمها Tab لتقسيم الفورم ،

كما في الصورة

post-47438-1253195437_thumb.jpg

ابحث عن شيئ يقابله في ال wxPython لكني لم اجد.

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#2

استخدم wx.Notebook

(map share people)

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

#4

و هذا مثال عن wx.Notebook يوضح كيفية استخدامها

post-47438-1253298684_thumb.jpg

   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()

المصدر

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#5

للأسف تواجهني مشكل في تكوين ال tabs

كما في الصورة

post-47438-1253440126_thumb.jpg

ال 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()

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#6

المشكلة عندك انك ورثت كلاس من 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

#7

الله يبارك فيك.

تمام ،، مشي الحال ،،

كما تعلم لسه مبتدئ ب wx

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

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