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);
}
あなたがアクティブで何を意味するのですか? – Fabio
のようにクリックしました。しかし、私はクリックしたくない。私はそれをコード内で「クリック」したいと思う。 –
'item-> setCheckState(Qt :: Checked);'? – IAmInPLS