c++ - 向 QListWidget 添加操作

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

但问题是,这什么都不显示,但所有操作都有文字?!我该如何解决这个问题?

最佳答案

没关系,因为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 添加操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26382207/

相关文章:

ios - Netflix 使用什么 NSExtensionActivationRule key ?

c++ - 如何创建一个假的 QNetworkAccessManager

ios - 显示带有操作的搜索栏(栏项)

asp.net - MVC 4 Web API操作返回: Types vs HttpResponseMessage

c++ - 如何同步访问 NAS 上文件的两个进程?

qt - 刚刚添加到布局中的小部件的 QWidget::height()

c++ - 连接 QSqlDatabase 有什么区别?

c++ - char p[0] 代表自动分配的缓冲区还是安全指针?

c++ - std::wstring 长度

c++ - 赋值运算符不起作用