2011-11-05 8 views

答えて

4

あなたのQListWidgetにはどのようにアイコンを追加しますか?これは、(私はリソースファイルからアイコンをロードしています)正常に動作する必要があります:

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

EDIT

私はあなたの問題はに対応するアイコンの下にいくつかの空白があることがあることがわかりスクリーンショットから、空の文字列リストウィジェットの項目のフォントに非常に小さなサイズを設定することで、この動作をハックすることができます。

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は奇妙に動作しますが、空の矩形を表示します。 pixmapをウィジェットとしてQLabelを追加しました。最後の希望は代議員です。あなたは私の目標を達成するためのコードスニペットを投稿できますか? – Dmitriy

1

私の解決方法は、アイコンのサイズの項目でsetSizeHint()を呼び出すことでした。選択ボックスがなくなってしまったので少しパッディングを追加しました。

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

利用NULLの代わりに

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

+1

これは正解です – ejectamenta

関連する問題