向QListWidget添加动作

时间:2014-10-15 12:07:19

标签: c++ qt action qlistwidget

我尝试将动作添加到QListWidget,如下所示:

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);

但问题是这没有显示任何内容,但所有操作都有文字?!我怎么解决这个问题?

1 个答案:

答案 0 :(得分:5)

没关系,因为QListWidget不支持添加操作。您需要阅读文档并使用QListWidget::addItem方法。

但您可以通过操作创建项目:

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 ) );