2010-06-29 12 views
58

मैं QPushButton पर एक छवि सेट करना चाहता हूं, और QPushButton का आकार छवि के आकार पर निर्भर होना चाहिए। QLabel का उपयोग करते समय मैं ऐसा करने में सक्षम हूं, लेकिन QPushButton के साथ नहीं।QPushButton पर छवि कैसे सेट करें?

तो, अगर किसी के पास कोई समाधान है, तो कृपया मेरी मदद करें।

+1

वहाँ आप क्यूटी में एक बटन, छवि, http स्थापित करने की प्रोग्रामेटिक रास्ते पर छवि सेट कर सकते हैं जो का उपयोग कर के दो तरीके हैं जोड़ने के बारे में पा सकते हैं स्टार्ट शीट से -articles.blogspot.com/2010/06/how-to-ustomize-button-in-qt.html कैसे छवि सेट की जा रही है, http://qt-articles.blogspot.com/2010/06/ कैसे-टू-एड-स्टाइलशीट-टू-बटन-इन-qt.html – Naruto

+0

बहुत अच्छा है ... यह ठीक काम करता है..बहुत बहुत धन्यवाद ... –

+0

आपका स्वागत है :) यदि आपको लगता है कि उत्तर सही है, तो कृपया इसे सही के रूप में चिह्नित करें ताकि यह अन्य लोगों के लिए सहायक हो जो समान समस्या प्राप्त करते हैं। – Naruto

उत्तर

2

मुझे नहीं लगता कि आप किसी भी मौजूदा बटन वर्ग पर मनमाने ढंग से आकार की छवियां सेट कर सकते हैं। आप एक बटन की तरह बर्ताव कर एक सरल छवि चाहते हैं, आप अपने खुद के QAbstractButton-उपवर्ग लिख सकते हैं, कुछ की तरह:

class ImageButton : public QAbstractButton { 
Q_OBJECT 
public: 
... 
    void setPixmap(const QPixmap& pm) { m_pixmap = pm; update(); } 
    QSize sizeHint() const { return m_pixmap.size(); } 
protected: 
    void paintEvent(QPaintEvent* e) { 
     QPainter p(this); 
     p.drawPixmap(0, 0, m_pixmap); 
    } 
}; 
+0

उत्तर देने के लिए धन्यवाद .. क्या आप यह बताकर मेरी मदद करेंगे कि मैं QAbstractButton के बजाय QPushButton के उपयोग से इस कोड को कैसे कार्यान्वित कर सकता हूं। मेरी आवश्यकताओं के रूप में QPushButton का उपयोग करना है। तो, कृपया मेरी मदद करें। –

+0

जैसा कि मैंने कहा, मुझे नहीं लगता कि एक उचित तरीका है। यदि बिल्कुल, QStyle और स्टाइल शीट मदद कर सकते हैं। वहां एक नज़र डालें उत्तर देने के लिए –

+0

धन्यवाद। –

51

आप क्या कर सकते एक आइकन के रूप में एक पिक्समैप का उपयोग करें और फिर बटन पर इस आइकन डाल है ।

यह सुनिश्चित करने के लिए कि बटन का आकार सही होगा, आपको पिक्समैप आकार के अनुसार आइकन को फिर से चालू करना होगा।

कुछ इस तरह काम करना चाहिए:

QPixmap pixmap("image_path"); 
QIcon ButtonIcon(pixmap); 
button->setIcon(ButtonIcon); 
button->setIconSize(pixmap.rect().size()); 
+4

मुझे पता है कि यह पुराना है, लेकिन मैंने यह किया है, और पुशबटन आइकन अभी भी डिफ़ॉल्ट है। मुझे कोई त्रुटि नहीं मिल रही है और मेरी सभी संसाधन फ़ाइलों को लोड किया जा रहा है और मेरे पथ अच्छे हैं। यह मेरे लिए क्यों काम नहीं करता है? – mrg95

32
QPushbutton *button = new QPushbutton; 
button->setIcon(QIcon("<imagePath>")); 
button->setIconSize(QSize(65,65)); 
9

तुम भी बटन आकार सेट कर सकते हैं।

QPixmap pixmap("image_path"); 
QIcon ButtonIcon(pixmap); 
button->setIcon(ButtonIcon); 
button->setIconSize(pixmap.rect().size()); 
button->setFixedSize(pixmap.rect().size()); 
2

यह पुराना है लेकिन यह अभी भी उपयोगी है, पूरी तरह से QT5.3 के साथ परीक्षण किया।

मेरे मामले में मैं स्रोत निर्देशिका परियोजना में "Ressources" नामक एक ressources निर्देशिका बनाया:

carreful, ressources पथ के विषय में उदाहरण है।

फ़ोल्डर "Ressources" चित्र होते हैं और icons.Then मैं क्यूटी तो में एक उपसर्ग "छवियां" पिक्समैप रास्ता बन कहा:

QPixmap पिक्समैप (":/images/Ressources/icone_pdf.png") ;

जेएफ

6

तुम भी उपयोग कर सकते हैं:

button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);"); 

नोट: यह एक छोटे से hacky है। आपको इसे केवल अंतिम उपाय के रूप में उपयोग करना चाहिए। प्रतीक C++ कोड या Qt Designer से सेट किए जाने चाहिए।

0

आप इसे QtDesigner में कर सकते हैं। बस अपने बटन पर क्लिक करें, फिर आइकन प्रॉपर्टी पर जाएं और फिर अपनी छवि फ़ाइल चुनें।

0

बस इस कोड

QPixmap पिक्समैप ("path_to_icon") का उपयोग करें;
क्यूआईकॉन आइकनबैक (पिक्समैप);

ध्यान दें कि:"path_to_icon" फ़ाइल में चित्र आइकन का मार्ग है।// क्यूटी: QRC अपनी परियोजना के
आप .qrc फ़ाइल here

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