如果要在隐藏状态时不显示图标,您可以将对应QAction的图标设置为空。以下是修改后的代码:
void Widget::onMenuItemTriggered(QAction* action)
{
int index = m_menuItems.value(action, -1);
qDebug() << __LINE__ << " index " << index;
if (index != -1) {
QTreeWidgetItem* childItem = ui->treeWidget->topLevelItem(index);
if (childItem) {
bool isHidden = childItem->isHidden();
childItem->setHidden(!isHidden);
QIcon icon;
if (isHidden) {
// 设置对应QAction的显示图标为空
icon = QIcon();
} else {
// 设置对应QAction的显示图标为显示状态
icon = QIcon(":/icons/visible_icon.png");
}
action->setIcon(icon);
}
}
}
这样,当子项被隐藏时,对应的QAction将没有图标显示。而当子项被显示时,则使用visible_icon.png作为QAction的图标。请根据您自己的需求调整相应路径和资源名称。
内容由零声教学AI助手提供,问题来源于学员提问




