[gtkmm] Schriftfarbe in Labels/Treeview möglich ?
-
Hallo,
ist es möglich in einem Treeview oder in einem Label oder sonst wo anders in gtkmm die Schriftfarbe zu ändern, also nicht immer schwarz.
Würde in meinem Projekt nämlich gut aussehen
Ich habe nämlich noch nie ein gtkmm-Programm gesehen, wo ne andere Schriftfarbe ist ...
-
nee ich denke das geht nicht, weil das layout was das label hat, ist doch von
dem installierten theme abhänggig oder?aber wenn es doch gehen sollte, dann steht das bestimmt in der ausgezeichneten doku *schleim*
-
Eventuell hast musst du mal schauen ob es via markup geht. ich bin da ehrlich gesagt auch überfragt. Ich hab das noch nie probiert :p
BR
evilissimo
-
Hi evilissimo,
danke für den Typ mit markup. Das hat mir dann den Weg zum Ziel gezeigt
Ganz bin ich aber noch nicht angekommenHier erstmal nen Codeschnipsel:
//mystyleWin.h #ifndef _MYSTYLEWINDOW_ #define _MYSTYLEWINDOW_ #include <gtkmm.h> class MyStyleWin : public Gtk::Window { private: Gtk::Label label1; Gtk::TreeView t_view; Gtk::VBox vbox; Glib::RefPtr<Gtk::ListStore> m_refTreeModel; public: MyStyleWin(); class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(m_team1); add(m_team2); } Gtk::TreeModelColumn<Glib::ustring> m_team1; Gtk::TreeModelColumn<Glib::ustring> m_team2; } Columns; }; #endif //mystyleWin.cpp #include "mystyleWin.h" MyStyleWin::MyStyleWin() : label1("Hallo Farbe") { //Darstellung modifizieren set_title("Style Test"); vbox.set_border_width(15); //Farben modifizieren label1.modify_fg(label1.get_state(),Gdk::Color("red")); t_view.modify_text(t_view.get_state(),Gdk::Color("blue")); //Spaltentyp definieren m_refTreeModel = Gtk::ListStore::create(Columns); t_view.set_model(m_refTreeModel); //Spalten mit Zeilen füllen Gtk::TreeModel::Row row = *(m_refTreeModel->append()); row[Columns.m_team1] = "Bayern Muenchen"; row[Columns.m_team2] = "Schalke 04"; row = *(m_refTreeModel->append()); row[Columns.m_team1] = "1. FC Koeln"; row[Columns.m_team2] = "VFB Stuttgart"; //Spalten in Treeview tun t_view.append_column("Team 1", Columns.m_team1); t_view.append_column("Team 2", Columns.m_team2); vbox.pack_start(label1); vbox.pack_start(t_view); add(vbox); show_all_children(); }
Nun würde ich gerne in TreeView für die jeweiligen Spalten eine andere Farbe haben.
Leider krieg ich das nicht hin.Ich könnte ja mehrere TreeViews nebeneinander tun und nachher es so versuchen, das man nicht sieht das das mehrere nebeneinander sind.
(möglich da den weißen Hintergrund zu verändern ???)Oder könnte es doch eine Möglichkeit geben die einzelnen Spalten eine andere Farbe zu verpassen.
-
Freak_Coder schrieb:
Oder könnte es doch eine Möglichkeit geben die einzelnen Spalten eine andere Farbe zu verpassen.
Soo Danke der gtkmm-Maillinglist das Problem auch gelöst...
Gtk::TreeViewColumn* pColumn = t_view.get_column(0); if(pColumn) { //Schriftfarbe der Spalte setzen Gtk::CellRendererText* renderer = static_cast<Gtk::CellRendererText*>(pColumn->get_first_cell_renderer()); renderer->property_foreground_gdk().set_value(Gdk::Color("green")); pColumn->add_attribute(renderer->property_visible(), Columns.m_team1); }
Das letzte Problem ist jetzt das ich gern um jede Zeile nen schönen schwarzen fetten Rand setzen würde und auch einen kleinen Abstand zwischen den Zeilen haben würde
-
bin ich der einzige, der findet dass dieser Thread in die FAQ gehört?
MfG
GPC