我试图像这样向QListWidget添加 Action :

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

但是问题在于,它什么也不显示,但是所有 Action 都有文本?我该如何解决?

最佳答案

可以,因为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 ) );

关于c++ - 向QListWidget添加 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26382207/

10-09 09:21