QListWidget:项目单击上的事件

QListWidget : Event on item click

本文关键字:事件 单击 项目 QListWidget      更新时间:2023-10-16

基本上,我有以下内容:

一个QListWidget,里面有一些项目,像这样:

ListMail是我的QListWidget。在这个QListWidget中,我有这样的元素:"Mail 1", "Mail 2",…

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

我已经尝试过了:connect(ui->listMail->selectedItems(0), SIGNAL(triggered()), this, SLOT(openMessage()),但它根本不起作用…

有什么帮助吗?

谢谢!

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

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