2012-01-21 21 views
5

मैं एक बटन के पृष्ठभूमि रंग को लाल रंग में बदलने की कोशिश कर रहा हूं लेकिन यह काम नहीं कर रहा है। मैं उदाहरण कोड पेस्ट करता हूं। यदि कोई मुझे बता सकता है कि मेरे कोड को कैसे ठीक किया जाए तो कृपया मदद करें।gtk (मिमी) 3 बटन पृष्ठभूमि रंग परिवर्तन

#include <gtkmm.h> 

// g++ simple.cc -o simple `pkg-config gtkmm-3.0 --cflags --libs` 

int main(int argc, char *argv[]) 
{ 
    Gtk::Main kit(argc, argv); 
    Gtk::Window window; 
    Gtk::Button button("TEST"); 
    button.override_background_color(Gdk::RGBA("red")); 
    window.add(button); 
    window.show_all(); 
    Gtk::Main::run(window); 
    return EXIT_SUCCESS; 
} 

अद्यतन: ठीक यहाँ मैं कैसे हल है:

mr_screen = Gdk::Screen::get_default(); 
mr_style_context = mp_window->get_style_context(); 
mr_css_provider = Gtk::CssProvider::create(); 
mr_css_provider->load_from_path(Glib::build_filename(m_glade_dir_path, "filename.css")); 
mr_style_context->add_provider_for_screen(mr_screen, mr_css_provider, GTK_STYLE_PROVIDER_PRIORITY_USER); 

और filename.css की सामग्री है:

column-header .button { 
    background-image: -gtk-gradient (linear, 
     left top, 
     left bottom, 
     from (#51cccc), 
     color-stop (0.5, darker (#51cccc)), 
     to (#51cccc)); 
} 
+1

मैं कुछ भी कोड में गलत नहीं दिख रहा है में, मुझे लगता है कि यह सबसे अधिक आप विषय के साथ करने की संभावना है। यदि आप डिफ़ॉल्ट थीम सेट कर सकते हैं तो आप बटन रंग में परिवर्तन देख सकते हैं। –

+0

मुझे नहीं लगता था कि gtk3 विषय बदलने के लिए बटन की पृष्ठभूमि को अवरुद्ध कर सकता है – giuspen

+0

बटनों की पृष्ठभूमि को कम से कम नवीनतम रिलीज़ में बदला जा सकता है। इस काम को प्राप्त करने में मेरे लिए मुख्य बिंदु एक प्रदाता जोड़ते समय GTK_STYLE_PROVIDER_PRIORITY_USER निर्दिष्ट कर रहा था। अन्यथा पृष्ठभूमि-छवि पृष्ठभूमि-रंग –

उत्तर

0

मैं ग के साथ ++ कोई अनुभव नहीं है, लेकिन मैं अजगर का उपयोग , पायथन में आपको यह करना है:

button.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(1.0 , 0.0 , 0.0, 1.0)) 
,210

शायद C++ आपको बस इतना करना इस

button.override_background_color(GTK_STATE_FLAGS_NORMAL, Gdk::RGBA(1.0 , 0.0 , 0.0, 1.0)); 
+0

हाय पर प्राथमिकता लेती है और आपके उत्तर के लिए धन्यवाद। हमने पाया कि समस्या विषय में सभी है, सीएसएस का उपयोग करने और इसे लोड करने का एकमात्र तरीका है। मैं समाधान की तलाश करूंगा और परिणाम के साथ प्रश्न अपडेट करूँगा। – giuspen

संबंधित मुद्दे