2016-05-25 6 views
0

Я хотел активировать предмет в файле QListWidget?Как активировать элемент в QListwidget?

Например, у меня есть QListWidget под названием lw_mask_items.

lw_mask_items.addItem('Rectangle 1') 
lw_mask_items.addItem('Rectangle 2') 
lw_mask_items.addItem('Rectangle 3') 

Может ли кто-нибудь сказать мне, как выбрать конкретный элемент и активировать его?

+2

Что вы имеете в виду с Activate? – Fabio

+0

как щелкнул. Но я не хочу кликать. Я хочу, чтобы он «щелкнул» в коде. –

+0

'item-> setCheckState (Qt :: Checked);'? – IAmInPLS

ответ

0

Если вы хотите просто поймать выбранный элемент, вы можете использовать сигналы QListWidgetitemClicked(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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^