QListWidget:项目点击时的事件

时间:2013-03-09 13:31:44

标签: c++ qt

基本上,我所拥有的是以下内容:

一个QListWidget,其中包含一些项目:

ListMail是我的QListWidget。 在这个QListWidget中,我有以下元素:“邮件1”,“邮件2”,......

我不知道,我怎样才能发出信号(例如)“邮件1”绑定到一个插槽(onClick)或类似的东西。

我已经尝试过这样的事情: connect(ui->listMail->selectedItems(0), SIGNAL(triggered()), this, SLOT(openMessage()),但它根本不起作用......

任何帮助?

谢谢!

2 个答案:

答案 0 :(得分:8)

您必须绑定到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.
    }
}

答案 1 :(得分:2)

QListWidget有一个信号QListWidget::itemPressed(QListWidgetItem *item),它会告诉你点击了哪个项目。您可以将此信号连接到您自己的插槽。还有其他相关信号。请参阅documentation