11

基本的に、私が持っているものは次のとおりです。

次のようないくつかのアイテムを含む QListWidget:

ListMail私のQListWidgetです。この QListWidget には、「メール 1」、「メール 2」などの要素があります。

そして、どうすれば(たとえば)「Mail 1」をスロット(onClick)などにバインドしてシグナルを作成できるかわかりません。

私はすでに : connect(ui->listMail->selectedItems(0), SIGNAL(triggered()), this, SLOT(openMessage())のようなことを試しましたが、まったく機能しません...

助けはありますか?

ありがとう !

4

2 に答える 2

12

itemClickedシグナルにバインドする必要があります。信号はQListWidgetItem*、クリックされた項目である を提供します。次に、それを調べて、それが最初のものかどうかを確認できます。

MyClass::MyClass(QWidget* parent)
    : QWidget(parent)
{
    connect(ui->listMail, SIGNAL(itemClicked(QListWidgetItem*)), 
            this, SLOT(onListMailItemClicked(QListWidgetItem*)));
}

void MyClass::onListMailItemClicked(QListWidgetItem* item)
{
    if (ui->listMail->item(0) == item) {
        // This is the first item.
    }
}
于 2013-03-09T13:42:57.987 に答える
2

QListWidget には、QListWidget::itemPressed(QListWidgetItem *item)どのアイテムがクリックされたかを知らせるシグナルがあります。この信号を自分のスロットに接続できます。他にも関連する信号があります。ドキュメントを参照してください。

于 2013-03-09T13:43:00.017 に答える