QPushButton पर छवि कैसे सेट करें?


81

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

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


2
ऐसे दो तरीके हैं जिनका उपयोग करके आप Qt में एक बटन पर छवि सेट कर सकते हैं, छवि सेट करने का प्रोग्रामेटिक तरीका, qt-articles.blogspot.com/2010/06/… स्टाइल शीट से चित्र सेट किया जा रहा है, क्यूटी-लेख। blogspot.com/2010/06/…
नारुतो

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

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

जवाबों:


69

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

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

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

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

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


10

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

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

9

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

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

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


4

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

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 );
    }
};

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

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

3

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

सुपाच्य रहें, उदाहरणों के विषय में उदाहरण पथ:

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

फ़ोल्डर "ressources" में चित्र और आइकन होते हैं। तब मैंने Qt में एक उपसर्ग "छवियाँ" जोड़ दिया ताकि Pixmap रास्ता बन जाए:

QPixmap Pixmap (": / images / Ressources / icone_pdf.png");

जेएफ


उत्तर
QPushButton के

2

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


आधार 'आइकन' सेटिंग के साथ ऐसा करें, कम से कम इसे अपनी छवि के साथ काम करते हुए देखने के लिए, प्रति राज्य आइकन सेट करने की कोशिश करने से पहले। आइकन का आकार आपकी छवि के लिए सेट करें, या आपकी छवि के लिए कम से कम पर्याप्त है, या यह प्रदर्शित नहीं करेगा।
ClearCrescendo

0

बस इस कोड का उपयोग करें

QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);

ध्यान दें कि: आपके प्रोजेक्ट की "path_to_icon"फ़ाइल में छवि आइकन का पथ है। .qrcआप पा सकते हैं कि यहाँ.qrc फ़ाइल कैसे जोड़ें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.