[英]C++ Qt Do something when an QListWidgetItem from a QListWidget is clicked or selected
QListWidgetItem* lwi = new QListWidgetItem(text.c_str());
lw->addItem(lwi);
QObject::connect(lwi, &QListWidgetItem::isSelected, &lwi, []() {
exit(0);
});
我想做这样的事情,如果选择或单击 QListWidget 中的项目,程序将退出。 但这不是正确的语法,我不知道如何使它正确。 有什么帮助吗?
QListWidgetItem::isSelected
不是 Qt 信号。
您的QListWidgetItem
很可能会嵌入到QListWidget
中。 QListWidget
提供了几个可能适合您需要的信号。 例如:
QListWidgetItem* lwi = new QListWidgetItem(text.c_str());
lw->addItem(lwi);
// Assuming lw is a QListWidget*
QObject::connect(lw, &QListWidget::currentItemChanged,
[lwi](QListWidgetItem* current, QListWidgetItem* /*previous*/)
{
if (current == lwi) std::exit(0);
});
另请注意,在将信号连接到 lambda (或一般的仿函数)时,您不需要传递接收者地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.