[英]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);
});
I want to do something like this, where if an item from the QListWidget is selected or clicked the program will just exit.我想做这样的事情,如果选择或单击 QListWidget 中的项目,程序将退出。 But this is not the correct syntax and I have no idea how to make it right.
但这不是正确的语法,我不知道如何使它正确。 Any help?
有什么帮助吗?
QListWidgetItem::isSelected
is not a Qt signal.QListWidgetItem::isSelected
不是 Qt 信号。
Most likely, your QListWidgetItem
will be embedded in a QListWidget
.您的
QListWidgetItem
很可能会嵌入到QListWidget
中。 QListWidget
provides several signals which may fit your needs. QListWidget
提供了几个可能适合您需要的信号。 Eg:例如:
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);
});
Please also note you don't need to pass the receiver address when connecting a signal to a lambda (or a functor, in general).另请注意,在将信号连接到 lambda (或一般的仿函数)时,您不需要传递接收者地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.