2011-11-05 30 views

cevap

4

QListWidget öğenize nasıl bir simge eklersiniz? Bu çalışması gerekir ince (ı kaynak dosyadan simge yükleme am): simge tekabül aşağıda bazı beyaz alanın olmasını ben senin sorun olduğunu gördüğünüz ekran itibaren

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

DÜZENLEME

boş dize. Bu davranışı, liste widget öğesinin yazı tipine çok küçük bir boyut ayarlayarak kesebilirsiniz.

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

Bu

hile olacaktır. Bununla birlikte, setItemWidget işlevini de kullanabilir ve özel tasarımlı küçük aracınızı kullanabilir veya bir QListView ve bir temsilci kullanabilirsiniz.

+0

boş bir alan yerine metin gösterilir. Simgeyi seçtiğinizde bu alan seçilir. Bundan kurtulmak istiyorum. Sorumu düzeltildi. – Dmitriy

+0

Güncelleştirilen yanıtı kontrol edin – pnezis

+0

Küçük yazı tiplerini ayarlama hile yapmıyor. Seçim yapıldıktan sonra küçük bir dikdörtgen görünür. setItemWidget garip çalışır, hala boş bir dikdörtgen görüntüler. Widget olarak bir pixmap ile QLabel ekledim. Son umut delegedir. Bir kod snippet'i gönderebilir, hedefime nasıl ulaşabilirim? – Dmitriy

1

Çözümüm, simgenin boyutuna göre setSizeHint() öğesini çağırmaktı. Seçim kutusu, onsuz kesildi çünkü biraz doldurma ekledi.

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

kullanımı NULL yerine

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

+1

bu doğru cevaptır – ejectamenta

İlgili konular