我想激活QListWidget
?
例如,我有QListWidget
名为lw_mask_items
。
lw_mask_items.addItem('Rectangle 1')
lw_mask_items.addItem('Rectangle 2')
lw_mask_items.addItem('Rectangle 3')
有人可以告诉我如何选择特定项目并将其激活吗?
答案 0 :(得分:0)
如果您想抓住所选项目,可以使用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);
}