2011-11-08 15 views
7

Qtの実行時にQListWidgetに2つの画像とテキストを追加するには? リストの先頭に1つ、最後に1つのイメージを配置したいと思います。最初のイメージの直後にテキストを配置する必要があります。QListWidgetカスタムアイテムをQtに追加しますか?

itemclickedイベント

connect(list, SIGNAL(itemClicked()), this, SLOT(clicked(QListWidgetItem *))); 
void MyWidget::clicked(QListWidgetItem *item) 
{ 
    //code 

} 

答えて

10

setItemWidget機能を見てください。 2つのアイコンラベルとテキストラベルを含むウィジェット(MyListItemWidgetと呼ぶ)を設計し、そのコンストラクタで2つのアイコンとテキストを提供することができます。その後、QListWidgetに追加することができます。サンプルコードは次のとおりです。

QIcon icon1, icon2; // Load them 
MyListItemWidget *myListItem = new MyListItemWidget(icon1, icon2, "Text between icons"); 
QListWidgetItem *item = new QListWidgetItem(); 
ui->listWidget->addItem(item); 
ui->listWidget->setItemWidget(item, myListItem); 

をあなたはまた、カスタムリストの項目を設計し、表示するための最良の選択肢であるQListViewQItemDelegateを見てみる必要があります。それらの署名が一致しなければならないスロットに信号を接続する場合の接続

に関する

EDIT。これは、スロットが信号より多くのパラメータを持つことができないことを意味する。 signals-slots documentation

からのシグナルとスロット機構は、型安全である: 信号の署名は、受信スロットの署名が一致しなければなりません。 (実際にはスロット は、それが 追加の引数を無視することができますので、それは受信信号よりも短い署名を有することができる。)

これはあなたの信号は、接続中QListWidgetItem *引数を持たなければならないことを意味します。

+0

私はあなたが提案したのと同じ方法を採用していますが、それ以降はリスト上でitemclickedイベントを使用すると、ダブルクリックで解消されます。 – user662285

+0

'itemClicked'シグナルはどのように扱いますか?いくつかのコードは役に立ちます – pnezis

+0

上記の私の編集したポストを参照してください。 – user662285

関連する問題