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 回答