  | 
					
						Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!   
						
						
					 | 
				 
			 
			 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		E-P-S
 
  
  Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
  | 
		
			
				 Verfasst am: 27.08.2009, 20:05    Titel: TreeView mit mehreren Spalten | 
				     | 
			 
			
				
  | 
			 
			
				Hi zusammen
 
 
ich wusste nicht genau wo ich die Frage unter bringen sollte, daher stelle ich sie mal hier rein.
 
 
Das angehängte Bild zeigt einen TreeView der zusätzlich rechts für jede Zeile noch mehrere Spalten hat.
 
 
Wie kann man sowas realisieren? (BTW - last euch von dem darum schwirrenden Text usw. nicht irritieren, es geht nur um den TreeView)
 
 
  _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		E-P-S
 
  
  Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
  | 
		
			
				 Verfasst am: 29.03.2010, 13:49    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Darf ich den post nochmal pushen? Keiner ne Ahnung oder nen Tipp? _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Jojo alter Rang
  
  Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
  | 
		
			
				 Verfasst am: 29.03.2010, 14:37    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Also auf Anhieb finde ich über Google mehrere Lösungsansätze. Gibt halt noch nix spezielles für FB, aber das kann man ja leicht übersetzen. Hier scheint der Code dabei zu sein, vielleicht findest du da ja was brauchbares. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 
  | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		E-P-S
 
  
  Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
  | 
		
			
				 Verfasst am: 29.03.2010, 14:50    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Vielen Dank, solche Lösungsansätze hab ich mir auch schon angeschaut.
 
 
Da gibt es unterschiedliche Methoden wie sie realisiert wurden. Mal mehr und mal weniger aufwendig. In diesem speziellen Beispiel ist es kein echter TreeView, hier wird eine Liste nur als Treeview dargestellt. Nicht das das nicht funktionieren würde...aber...
 
 
... ich wollte halt wissen ob es für FB schon sowas gibt - man muß das Rad ja nicht mehrmals erfinden. Für FB fand ich bis dato jedoch noch keine Lösung. _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Jojo alter Rang
  
  Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
  | 
		
			
				 Verfasst am: 29.03.2010, 16:22    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Naja, egal ob jetzt C, C++ oder FB, es läuft eigentlich immer auf die WinAPI hinaus - und da muss man normalerweise ja nicht viel Übersetzungsaufwand betreiben. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 
  | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		cadrat
 
  
  Anmeldungsdatum: 09.08.2008 Beiträge: 14 Wohnort: Jork
  | 
		
			
				 Verfasst am: 30.03.2010, 20:34    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hallo Ihr,
 
 
ich laborier auch grad an einem Lösungsansatz mit dem Gtk rum. Zumindest die Mehrspaltigkeit hab ich mir zusammengeklaut - werd sie morgen mal raussuchen, falls Interesse besteht.
 
 
Gruß
 
 
Stefan
 
 
PS: Die Icons gehen da mit Sicherheit auch | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		E-P-S
 
  
  Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
  | 
		
			
				 Verfasst am: 30.03.2010, 20:37    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Kann auf jeden Fall nicht schaden es mal zu zeigen   _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		cadrat
 
  
  Anmeldungsdatum: 09.08.2008 Beiträge: 14 Wohnort: Jork
  | 
		
			
				 Verfasst am: 30.03.2010, 20:55    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				OK, mal ganz 'quick and dirty':
 
Meine ersten Gehversuche:
 
 
 
 
 
 	  | Code: | 	 		  
 
 
#INCLUDE ONCE "gtk/gtk.bi"
 
DECLARE SUB callback1 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL user_data AS gpointer)
 
DECLARE SUB callback2 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL user_data AS gpointer)
 
DECLARE SUB win_close CDECL ALIAS "win_close" (BYVAL MENUITEM AS GTKMENUITEM  PTR, BYVAL USER_DATA AS GPOINTER)
 
DECLARE SUB create_and_fill_model()
 
DECLARE SUB addRowx(BYVAL s AS GtkTreeStore PTR, BYVAL i AS GtkTreeIter PTR, BYVAL c AS GtkTreeIter PTR)
 
 
DIM SHARED AS GtkWidget       PTR win
 
DIM        AS GtkWidget       PTR button1
 
DIM        AS GtkWidget       PTR button2
 
DIM        AS GtkWidget       PTR hbox
 
DIM        AS GtkWidget       PTR vbox
 
DIM SHARED AS GtkWidget       PTR tview
 
DIM SHARED AS GtkTreeModel    PTR model
 
 
gtk_init (0, 0)
 
 
win     = gtk_window_new(GTK_WINDOW_TOPLEVEL)
 
vbox    = gtk_vbox_new(TRUE, 2)
 
hbox    = gtk_hbox_new(TRUE, 2)
 
button1 = gtk_button_new_with_label("Button 1")
 
button2 = gtk_button_new_with_label("Button 2")
 
tview   = gtk_tree_view_new()
 
 
gtk_container_add(GTK_CONTAINER(vbox), button1)
 
gtk_container_add(GTK_CONTAINER(vbox), button2)
 
gtk_container_add(GTK_CONTAINER(hbox), tview)
 
gtk_container_add(GTK_CONTAINER(hbox), vbox)
 
gtk_container_add(GTK_CONTAINER(win), hbox)
 
 
g_signal_connect(GTK_OBJECT(win),     "destroy", G_CALLBACK(@win_close), 0)
 
g_signal_connect(GTK_OBJECT(button1), "clicked", G_CALLBACK(@callback1), 0)
 
g_signal_connect(GTK_OBJECT(button2), "clicked", G_CALLBACK(@callback2), 0)
 
 
gtk_window_set_title     (GTK_WINDOW(win), "Dies ist ein Fenster")
 
gtk_window_set_position  (GTK_WINDOW(win), GTK_WIN_POS_CENTER)
 
gtk_window_set_resizable (GTK_WINDOW(win), TRUE)
 
gtk_window_resize        (GTK_WINDOW(win), 800, 600)
 
 
 
 
gtk_widget_show_all(win): gtk_main()
 
 
SUB callback1 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL user_data AS gpointer) EXPORT
 
   DIM AS GtkCellRenderer PTR renderer
 
   renderer = gtk_cell_renderer_text_new ()
 
   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tview), -1, "Name", renderer, "text", 0, 0)
 
   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tview), -1, "Age", renderer, "text", 1, 0)
 
   create_and_fill_model
 
   gtk_tree_view_set_model (GTK_TREE_VIEW (tview), model)
 
 
   gtk_window_maximize(GTK_WINDOW(win))
 
 
END SUB
 
SUB callback2 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL user_data AS gpointer) EXPORT
 
   gtk_window_set_title     (GTK_WINDOW (win), "Button 2")
 
END SUB
 
SUB win_close CDECL (BYVAL MENUITEM AS GTKMENUITEM  PTR, BYVAL USER_DATA AS GPOINTER) EXPORT
 
   ? "...PENG, WIR SCHLIESSEN..."
 
   GTK_MAIN_QUIT()
 
END SUB
 
SUB create_and_fill_model()
 
   DIM AS GtkTreeStore PTR store
 
   DIM AS GtkTreeIter iter, child
 
   store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_UINT)
 
   gtk_tree_store_append(store, @iter, 0): gtk_tree_store_set(store, @iter, 0, "Heinz El-Mann", 1, 51, -1)
 
   gtk_tree_store_append(store, @iter, 0): gtk_tree_store_set(store, @iter, 0, "Jane Doe",      1, 23, -1)
 
   gtk_tree_store_append(store, @child, @iter): gtk_tree_store_set(store, @child, 0, "Joe Bungop",    1, 91, -1)
 
   gtk_tree_store_append(store, @child, @iter): gtk_tree_store_set(store, @child, 0, "Hans Hansen",    1, 91, -1)
 
   addRowx store, @iter, @child
 
   model = GTK_TREE_MODEL(store)
 
END SUB
 
 
SUB addRowx(BYVAL s AS GtkTreeStore PTR, BYVAL i AS GtkTreeIter PTR, BYVAL c AS GtkTreeIter PTR)
 
   gtk_tree_store_append(s, c, i): gtk_tree_store_set(s, c, 0, "Hans Hansen",    1, 91, -1)
 
END SUB
 
 
 
 
 
 
 
 
 | 	 
  | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		cadrat
 
  
  Anmeldungsdatum: 09.08.2008 Beiträge: 14 Wohnort: Jork
  | 
		
			
				 Verfasst am: 01.04.2010, 19:22    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Nochmal in Hübsch (Bild sowie Code). Man sieht: Es geht mit GTK    Die TreeLines fehlen noch und die Zahlen als zweite Spalte müßten durch Icons ersetzt werdden. Ach ja, und die Kontoauszughinterlegung wäre auch noch eine Herausforderung.
 
 
 
 
 
 	  | Code: | 	 		  
 
#INCLUDE ONCE "gtk/gtk.bi"
 
DECLARE SUB win_close CDECL ALIAS "win_close" ( _
 
   BYVAL MENUITEM AS GTKMENUITEM  PTR, BYVAL USER_DATA AS GPOINTER)
 
DIM SHARED AS GtkWidget         PTR win
 
DIM        AS GtkWidget         PTR hbox
 
DIM SHARED AS GtkWidget         PTR tview
 
DIM        AS GtkTreeStore      PTR store
 
DIM SHARED AS GtkTreeModel      PTR model
 
DIM        AS GtkTreeViewColumn PTR col
 
DIM        AS GdkPixbuf         PTR icon1
 
DIM        AS GdkPixbuf         PTR icon2
 
DIM        AS GtkCellRenderer   PTR renderer
 
DIM        AS GtkTreeIter       iter, child
 
enum
 
   COL_ICON = 0
 
   COL_TEXT
 
   COL_NUM
 
   NUM_COLS
 
end enum
 
gtk_init (0, 0)
 
' **********************************************************************
 
'                                                           win - Window
 
' **********************************************************************
 
win     = gtk_window_new(GTK_WINDOW_TOPLEVEL)
 
hbox    = gtk_hbox_new(TRUE, 1)
 
tview   = gtk_tree_view_new()
 
gtk_container_add(GTK_CONTAINER(hbox), tview)
 
gtk_container_add(GTK_CONTAINER(win), hbox)
 
g_signal_connect(GTK_OBJECT(win), "destroy", G_CALLBACK(@win_close), 0)
 
'gtk_window_set_icon      (GTK_WINDOW(win), icon)
 
gtk_window_set_title     (GTK_WINDOW(win), "Scene Explorer")
 
gtk_window_set_position  (GTK_WINDOW(win), GTK_WIN_POS_CENTER)
 
gtk_window_set_resizable (GTK_WINDOW(win), TRUE)
 
gtk_window_resize        (GTK_WINDOW(win), 800, 600)
 
' **********************************************************************
 
'                                                     TreeView - Spalten
 
' **********************************************************************
 
 
col = gtk_tree_view_column_new()
 
gtk_tree_view_column_set_title(col, "Title")
 
 
renderer = gtk_cell_renderer_pixbuf_new()
 
gtk_tree_view_column_pack_start(col, renderer, FALSE)
 
gtk_tree_view_column_set_attributes(col, renderer, "pixbuf", COL_ICON,0)
 
 
renderer = gtk_cell_renderer_text_new()
 
gtk_tree_view_column_pack_start(col, renderer, TRUE)
 
gtk_tree_view_column_set_attributes(col, renderer, "text", COL_TEXT,0)
 
 
renderer = gtk_cell_renderer_text_new()
 
gtk_tree_view_column_pack_start(col, renderer, TRUE)
 
gtk_tree_view_column_set_attributes(col, renderer, "text", COL_NUM,0)
 
 
gtk_tree_view_append_column(GTK_TREE_VIEW(tview), col)
 
' **********************************************************************
 
'                                                      TreeView - Zeilen
 
' **********************************************************************
 
icon1    = gdk_pixbuf_new_from_file("ICON1.png", 0)
 
icon2    = gdk_pixbuf_new_from_file("ICON2.png", 0)
 
store = gtk_tree_store_new(NUM_COLS, GDK_TYPE_PIXBUF, _
 
   G_TYPE_STRING, G_TYPE_UINT)
 
gtk_tree_store_append(store, @iter, 0)
 
gtk_tree_store_set(   store, @iter, COL_ICON, icon1, _
 
   COL_TEXT, "Scene name", COL_NUM, 51, -1)
 
gtk_tree_store_append(store, @iter, 0)
 
gtk_tree_store_set(   store, @iter, COL_ICON, icon2, _
 
   COL_TEXT, "Camera, 1",      COL_NUM, 23, -1)
 
gtk_tree_store_append(store, @child, @iter)
 
gtk_tree_store_set(store, @child, COL_ICON, icon1, _
 
   COL_TEXT, "Blablubb",    COL_NUM, 91, -1)
 
gtk_tree_store_append(store, @child, @iter)
 
gtk_tree_store_set(store, @child, COL_ICON, icon1, _
 
   COL_TEXT, "Blabla",    COL_NUM, 91, -1)
 
model = GTK_TREE_MODEL(store)
 
gtk_tree_view_set_model (GTK_TREE_VIEW (tview), model)
 
gtk_widget_show_all(win)
 
gtk_main()
 
SUB win_close CDECL ( _
 
   BYVAL MENUITEM AS GTKMENUITEM  PTR, _
 
   BYVAL USER_DATA AS GPOINTER) EXPORT
 
   GTK_MAIN_QUIT()
 
END SUB
 
 
 
 
 
 
 
 | 	 
  | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
  | 
   
 
     |