Jan
Jan

Reputation: 139

adding an action to a QListWidget

I try to add actions to an QListWidget like this:

toolItems = new QListWidget(this);
toolItems->addAction(ui->itemLight);
toolItems->addAction(ui->itemDarkLight);
toolItems->addAction(ui->itemCameraPos);
toolItems->addAction(ui->itemCamera);
toolItems->addAction(ui->itemRounded);
toolItems->addAction(ui->itemLightbulb);
toolItems->addAction(ui->itemCommentOnScreen);

But the problem is that this displays nothing, but all actions have text?! How I can fix this?

Upvotes: 2

Views: 2096

Answers (1)

Dmitry Sazonov
Dmitry Sazonov

Reputation: 9014

It is OK, because QListWidget does not support adding actions. You need to read documentation and to use QListWidget::addItem method.

But you may create items from actions:

QListWidgetItem *createItemFromAction( const QAction* action )
{
  Q_ASSERT( action );
  QListWidgetItem *item = new QListWidgetItem();
  item->setText( action->text() );
  item->setToolTip( action->toolTip() );
  item->setIcon( action->icon() );
  // ...
  return item;
}
//...
toolItems->addAction( createItemFromAction( ui->itemCommentOnScreen ) );

Upvotes: 5

Related Questions