Hello all,
I have a deep background in java and I am now using python for some OSS
work, however I'm having some trouble with creating a settings dialog with
two unique Tree's of type ListStore.



In the following code, the functions get_streams() & get_jingles() each need
to create their own unique ScrollList object, however they seem to be
sharing something.

http://savonet.svn.sourceforge.net/viewvc/savonet/trunk/rocket/liguidsoap.py?view=markup


class settings:
   dialog = gtk.Dialog()

   def __init__(self,widget,data=None):
   self.get_dialog()


   def get_dialog(self):

   flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT
   buttons = (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
   dialog = gtk.Dialog("Settings",None,flags,buttons)
   dialog.set_size_request(600,400)

   dialog.show()
   button = gtk.Button("test")
   button.show()

   dialog.vbox.pack_start(self.get_notebook(),0)
   #if dialog.run() == gtk.RESPONSE_ACCEPT:
   #    print "run"

   #dialog.destroy()
   return True

   def get_notebook(self):
   notebook = gtk.Notebook()
   notebook.show()
   blankFrame = gtk.Frame("This is a blank frame")
   blankFrame.show()

   frameTwo = gtk.Frame("This is a blank frame")
   frameTwo.show()

   notebook.append_page(blankFrame,gtk.Label("Layout"))

   notebook.append_page(self.get_jingles(),gtk.Label("Jingles"))
   notebook.append_page(self.get_streams(),gtk.Label("Streams"))
   notebook.append_page(frameTwo,gtk.Label("Users"))
   return notebook

   def get_streams(self):
   streams = gtk.Frame()
   streams.show()

   #Setup the scrollable list
   sl = self.scrollList( ("Name", "Status") )
   sl.append_row(["Local","Connected"])
   sl.append_row(["Sustain","Connected"])
   sl.append_row(["Main Stream - High Bandwidth","Connected"])
   sl.append_row(["Main Stream - Low Bandwidth","Connected"])

   buttons = gtk.HButtonBox()
   buttons.show()
   editButton = gtk.Button("Edit")
   editButton.show()

   buttons.pack_end(editButton)

   vBox = gtk.VBox(False,2)
   vBox.show()
   vBox.pack_start(sl)
   vBox.pack_end(buttons)

   streams.add(vBox)
   return streams

   def get_jingles(self):
   jingles = gtk.Frame()
   jingles.show()

   sl = self.scrollList( ("Name","Owner") )
   sl.append_row( ["Main","Studio Manager"] )

   buttons = gtk.HButtonBox()
   buttons.show()
   editButton = gtk.Button("Edit")
   editButton.show()
   accessButton = gtk.Button("Access")
   accessButton.show()

   buttons.pack_end(editButton)
   buttons.pack_end(accessButton)

   vBox = gtk.VBox(False,2)
   vBox.show()
   vBox.pack_start(sl)
   vBox.pack_start(buttons)

   jingles.add(vBox)

   return jingles

   class scrollList(gtk.ScrolledWindow):
   listModel = gtk.ListStore(gobject.TYPE_STRING,
                gobject.TYPE_STRING)
   treeView = gtk.TreeView()
   columns = (gobject.TYPE_STRING,gobject.TYPE_STRING)


   def __init__(self,columns):
       gtk.ScrolledWindow.__init__(self)
       self.columns = columns
       self.set_size_request(1,280)
       self.show()

       self.treeView = gtk.TreeView()
       self.treeView.show()
       self.add(self.treeView)

       self.treeView.set_model(self.listModel)

       self.treeView.set_headers_visible(True)

       count = 0
       for i in columns:
           renderer=gtk.CellRendererText()
           column=gtk.TreeViewColumn(i,renderer,text=count)
           column.set_resizable(True)
           self.treeView.append_column(column)
           count+=1

   def append_row(self,row):
       self.listModel.append(row)
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to