2011-11-05 10 views
6

मैं अपने QListWidget में केवल आइकन दिखाना चाहता हूं। मैंने खाली स्ट्रिंग पर टेक्स्ट सेट किया। जब मैं एक आइकन चुनता हूं तो मुझे टेक्स्ट स्थान पर एक खाली चयनित वर्ग दिखाई देता है। See the screenshot मैं इस खाली जगह से कैसे छुटकारा पा सकता हूं ?!QListWidget में टेक्स्ट के बिना आइकन कैसे दिखाएं?

उत्तर

4

आप अपने QListWidget में एक आइकन कैसे जोड़ते हैं? यह ठीक काम करना चाहिए (मैं संसाधन फ़ाइल से आइकन लोड हो रहा हूँ):

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"), "")); 

संपादित

स्क्रीनशॉट मैं देख रहा हूँ आपकी समस्या यह है कि से आइकन के लिए इसी नीचे कुछ सफेद स्थान है कि वहाँ खाली स्ट्रिंग। आप सूची विजेट आइटम के फ़ॉन्ट पर बहुत छोटा आकार सेट करके इस व्यवहार को हैक कर सकते हैं।

QListWidgetItem *newItem = new QListWidgetItem; 
QFont f; 
f.setPointSize(1); // It cannot be 0 
newItem->setText(""); 
newItem->setIcon(QIcon(":/res/icon")); 
newItem->setFont(f); 
ui->listWidget->addItem(newItem); 

यह चाल करेगा। हालांकि आप setItemWidget फ़ंक्शन का भी उपयोग कर सकते हैं और अपने कस्टम डिज़ाइन किए गए विजेट का उपयोग कर सकते हैं, या QListView और एक प्रतिनिधि का उपयोग कर सकते हैं।

+0

एक खाली जगह के बजाय पाठ दिखाया गया है। जब आप आइकन चुनते हैं तो यह स्थान चुना जाता है। मैं इससे छुटकारा पाना चाहता हूं। मेरा सवाल ठीक किया। – Dmitriy

+0

मेरा अद्यतन उत्तर देखें – pnezis

+0

छोटे फ़ॉन्ट को सेट करना चाल नहीं करता है। चयन के बाद एक छोटा आयताकार अभी भी दिखाई देता है। setItemWidget अजीब तरीके से काम करता है, यह अभी भी एक खाली आयताकार प्रदर्शित करता है। मैंने विजेट के रूप में एक पिक्समैप के साथ QLabel जोड़ा है। आखिरी उम्मीद प्रतिनिधि है। क्या आप एक कोड स्निपेट पोस्ट कर सकते हैं, मेरा लक्ष्य कैसे प्राप्त करें? – Dmitriy

1

मेरा समाधान आइकन के आकार के साथ आइटम पर setSizeHint() को कॉल करना था। मैंने थोड़ा पैडिंग जोड़ा क्योंकि चयन बॉक्स को इसके बिना काट दिया गया था।

QListWidgetItem * pItem = new QListWidgetItem(icon, ""); 
pItem->setSizeHint(iconSize + QSize(4,4)); 
listWidget->addItem(pItem); 
7

उपयोग शून्य बजाय

ui->listWidget->addItem(new QListWidgetItem(QIcon(":/res/icon"),NULL));

+1

यह सही उत्तर है – ejectamenta

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