[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 angekommen 😃

    Hier 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


Anmelden zum Antworten