2010-02-02 12 views
12
self.button = gtk.Button(stock=gtk.STOCK_DELETE) 

पर नहीं दिखाया केवल शो: हटाएँस्टॉक प्रतीक बटन

+0

इस उत्तर आप मदद कर सकते हैं: http://stackoverflow.com/questions/1734914/in-gtk-how-do- i-make-a-button-with-just-a-stock-icon – Trent

उत्तर

9

यह जीटीके में हाल ही में एक परिवर्तन है - डेवलपर्स बटन पर प्रकट करने नहीं माउस चाहता था। लिनक्स पर, इस संपादन करके बदला जा सकता है gconf कुंजी

/desktop/gnome/interface/buttons_have_icons 

खिड़कियों पर, मुझे लगता है कि (मैं वास्तव में इस प्रयास नहीं किया है) आप अपने विकल्प मानक फ़ाइल में एक मूल्य निर्धारित करने की आवश्यकता है कि (मेरे लिए यह C:\Program Files\Gtk+\etc\gtkrc में है) और आइकन का समर्थन करने वाली थीम का उपयोग करें (मुझे लगता है कि डिफ़ॉल्ट कोई नहीं करता है)।

तुम भी विषय है जिस पर gconf से विकल्प सवारी कर सकते हैं स्थापित करने के बाद अपने ~/.gtkrc-2.0 फ़ाइल करने के लिए gtk-button-images = 1 जोड़ सकते हैं।

बस इस जवाब की तरह है, लेकिन अजगर में: अपनी टिप्पणी के जवाब में

संपादितIn Gtk, how do I make a Button with just a stock icon?

अजगर के लिए, यह सिर्फ

image = gtk.Image() 
# (from http://www.pygtk.org/docs/pygtk/gtk-stock-items.html) 
image.set_from_stock(gtk.STOCK_**) 
button = gtk.Button() 
button.set_image(image) 
button.set_label("") 
+0

तत्काल उत्तर के लिए धन्यवाद। क्या आपको पता है कि बटन से आइकन के टेक्स्ट हिस्से को कैसे हटाया जाए? – aberkowitz

+0

मैंने संपादन में आपकी टिप्पणी का उत्तर दिया - यह मूल रूप से आपके मूल प्रश्न पर टिप्पणी में पोस्ट किए गए प्रश्न ट्रेंट की तरह है। –

+0

@DanielG विंडोज में बदलने के लिए आपको क्या मूल्य चाहिए? – techno

2

मैं यह करने के पाने के लिए था है यह मेरी कॉन्फ़िगरेशन फ़ाइल को बदले बिना पायथन से काम करने के लिए। जब मैंने set_image() कहा, तो कोई छवि प्रदर्शित नहीं की जा रही थी।

image = gtk.Image() 
image.set_from_stock(gtk.STOCK_**, gtk.ICON_SIZE_BUTTON) 
button = gtk.Button() 
button.add(image) 
button.show() 
1

मेरे पास विंडोज़ पर जीटीकेएम में एक ही समस्या थी। "एमएस-विंडोज" थीम स्टॉक बटन पर छवियों को अक्षम करती है और थीम को gtkrc में सेटिंग्स पर प्राथमिकता है (इसलिए gtkrc में gtk-button-images = true डालने में मदद नहीं मिली)। मैंने जीटीके सेटिंग्स रनटाइम को संशोधित करने के लिए किया है, और छवियों की उम्मीद के रूप में दिखाई दिया। :) यहाँ C++ कोड है:


Glib::RefPtr<Gtk::Settings> settings = Gtk::Settings::get_default(); 
/* force using icons on stock buttons: */ 
settings->property_gtk_button_images() = true; 

यह बाद पहले खिड़की का निर्माण किया है रखा जाना चाहिए।

14
किसी भी प्रणाली config फ़ाइलों को बदलने के लिए बिना संपत्ति की स्थापना के लिए

अजगर बराबर है:

settings = gtk.settings_get_default() 
settings.props.gtk_button_images = True 

यह window.show के लिए एक कॉल का पालन करना चाहिए() और, जाहिर है, gtk.main पूर्व में होना() पाश।

+1

यदि कोई इसे सी में करता है, तो 'GtkSettings * सेटिंग्स = gtk_settings_get_default(); g_object_set (सेटिंग्स, "gtk-button-images", TRUE, NULL); 'समकक्ष प्रक्रिया है। – Fraxtil

-1

आप स्पष्ट रूप से बटन छवि दिखा सकते हैं, बस, Gtk + डेवलपर्स ऐसा करने की अनुशंसा नहीं करते हैं क्योंकि यह Gtk + उपयोगकर्ता कॉन्फ़िगरेशन को ओवरराइड करता है।

तो ...

button.get_image().show() 
2

आप pygobject के साथ काम करते हैं, तो नई वाक्य रचना है:

image.set_from_stock(gtk.STOCK_**, Gtk.IconSize.BUTTON) 
+0

मुझे gtk.ICON_SIZE_BUTTON का उपयोग करना पड़ा – jsj

0
Gtk3 gtk.STOCK विधि में

deprecated from v3.10 किया गया है।() बजाय उपयोग Gtk.Button.new_with_label:

संस्करण 3.10 के बाद से खारिज किया गया।

मामले के बाद से यह कस्टम लेबल समाधान (new_with_label) आप स्टॉक सामान उपयोग करना चाहते हैं तो आप अभी भी नए तरीकों Gtk.Button.new_from_icon_name(icon_name, size) और Gtk.Button.new_with_mnemonic(label) जो शेयर के साथ नए बटन बनाने के साथ ऐसा कर सकते हैं के लिए अंक यह मदद नहीं करता है में क्रमशः आइकन और लेबल।

एक "स्टॉक" आइकन साथ

उदाहरण नया बटन:

button = Gtk.Button.new_with_mnemonic("_Open") 

नोट:: एक "स्टॉक" लेबल साथ

button = Gtk.Button.new_from_icon_name ("edit-paste", Gtk.IconSize.SMALL_TOOLBAR) 

उदाहरण नया बटन एक निरंतर बनाने गंभीर कोड पर सीधे स्ट्रिंग का उपयोग करने के बजाय परिवर्तनीय एक बेहतर विकल्प है :)

संदर्भ:

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