Если вы хотите просто поймать выбранный элемент, вы можете использовать сигналы QListWidget
itemClicked(QListWidgetItem *item)
или itemActivated(QListWidgetItem *item)
. Если вы хотите каким-то образом активировать пользовательский элемент, вы можете использовать метод setItemSelected()
или setSelected()
из QListWidgetItem
.
Таким образом, ваш код может быть, например:
.h сторона:
<...>
signals:
void someSignal(const QString &data);
public slots:
void itemClicked(QListWidgetItem *item);
void someSlot(const QString &data);
}
.cpp сторона:
YourClass::YourClass()
{
lw_mask_items.addItem('Rectangle 1')
lw_mask_items.addItem('Rectangle 2')
lw_mask_items.addItem('Rectangle 3')
connect(&lw_mask_items, &QListWidget::itemClicked, this, &YourClass::itemClicked);
connect(this, &YourClass::someSignal, this, &YourClass::someSlot);
}
void YourClass::itemClicked(QListWidgetItem *item)
{
// your code here
}
void YourClass::someSlot(const QString &data)
{
for(int i = 0; i < wid.count(); i++)
if(wid.item(i)->data(Qt::DisplayRole).toString().contains(data))
wid.item(i)->setSelected(true);
}
Что вы имеете в виду с Activate? – Fabio
как щелкнул. Но я не хочу кликать. Я хочу, чтобы он «щелкнул» в коде. –
'item-> setCheckState (Qt :: Checked);'? – IAmInPLS