基本上,我所拥有的是以下内容:
一个QListWidget,其中包含一些项目:
ListMail
是我的QListWidget。
在这个QListWidget中,我有以下元素:“邮件1”,“邮件2”,......
我不知道,我怎样才能发出信号(例如)“邮件1”绑定到一个插槽(onClick)或类似的东西。
我已经尝试过这样的事情:
connect(ui->listMail->selectedItems(0), SIGNAL(triggered()), this, SLOT(openMessage())
,但它根本不起作用......
任何帮助?
谢谢!
答案 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。