ubuntuusers.de

GTKMM und Treeview

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

casif

Avatar von casif

Anmeldungsdatum:
12. Dezember 2009

Beiträge: 69

Wohnort: Wesel

Hallo,

irgendwie finde ich das GTKMM sehr unübersichtlich, und die Dokumentation im Internet auch nicht wirklich gut.

Ich versuche eine Spalte in einem Treeview einzufärben, welche Eigenschaft bzw. Methode muss man benutzen?

	//Create the Tree model:
	m_refTreeModel = Gtk::ListStore::create(m_Columns);
	m_TreeView.set_model(m_refTreeModel);

	//Add the TreeView’s view columns:
	m_TreeView.append_column("Name", m_Columns.m_col_name);
	m_TreeView.append_column_numeric("Value", m_Columns.m_col_value, "%2.3f");
	m_TreeView.append_column("Status", m_Columns.m_col_status);

Die Spalte mit dem Status würde ich gerne einfärben, aber wie??

VG casif

Systemkritiker

Anmeldungsdatum:
2. Januar 2011

Beiträge: 110

Wohnort: Schweiz

Probier’s mal hiermit:

1
2
m_TreeView.append_column("Status", m_Columns.m_col_status);
m_TreeView.get_column(2)->get_first_cell()->property_cell_background_gdk() = Gdk::Color("yellow");

Beste Grüsse, Systemkritiker

casif

(Themenstarter)
Avatar von casif

Anmeldungsdatum:
12. Dezember 2009

Beiträge: 69

Wohnort: Wesel

Fehler in der Zeile:

m_TreeView.get_column(2)->get_first_cell()->property_cell_background_gdk() = Gdk::Color("yellow");
../mainwnd.cc: In constructor ‘MainWnd::MainWnd()’:
../mainwnd.cc:45: error: ‘class Gtk::TreeViewColumn’ has no member named ‘get_first_cell’
make: *** [mainwnd.o] Fehler 1

Systemkritiker

Anmeldungsdatum:
2. Januar 2011

Beiträge: 110

Wohnort: Schweiz

Hmm, Maverick scheint noch gtkmm 2.20 zu verwenden. Ersetze get_first_cell einfach durch get_first_cell_renderer, dann müsste es gehen. Die Funktion ist allerdings veraltet.

Beste Grüsse, Systemkritiker

casif

(Themenstarter)
Avatar von casif

Anmeldungsdatum:
12. Dezember 2009

Beiträge: 69

Wohnort: Wesel

ja danke, macht es dann nicht doch Sinn mein GTKMM upzudaten? Gibt es viele dieser Änderungen zur neuen Version?

ich erzeuge neue Zeilen mit folgendem Code

alert.row = *(m_refTreeModel->append());
alert.row[m_Columns.m_col_name] = name;
alert.row[m_Columns.m_col_value] = value;
alert.row[m_Columns.m_col_status] = "xxx";

Kann man jetzt auch nur die eine Zelle Status einfärbe, als nicht die ganze Spalte?

casif

(Themenstarter)
Avatar von casif

Anmeldungsdatum:
12. Dezember 2009

Beiträge: 69

Wohnort: Wesel

Kann mir hier keiner weiter helfen?

Antworten |