addAction("2"); menu->addAction("3"); menu->addAction("4"); menu->addAction("5"); ui->pushButton->setMenu(menu); 通过菜单 1 2...-QT开发中文网" />

QT开发中文网

Qt C++ QTreeWidgetItem有5个子项 1、2、3、4、5 QMenu *menu = new QMenu(this); menu->addAction("1"); menu->addAction("2"); menu->addAction("3"); menu->addAction("4"); menu->addAction("5"); ui->pushButton->setMenu(menu); 通过菜单 1 2...

要通过菜单来隐藏和显示QTreeWidgetItem的子项,你可以在每个菜单项的槽函数中设置对应子项的可见性。以下是一个示例代码:

// 在类中定义成员变量保存QTreeWidgetItem及其对应的菜单项
QTreeWidgetItem *treeItem;
QMap<QAction*, int> menuItems;

// 创建并设置菜单
QMenu *menu = new QMenu(this);
menu->addAction("1");
menu->addAction("2");
menu->addAction("3");
menu->addAction("4");
menu->addAction("5");

// 将菜单关联到按钮
ui->pushButton->setMenu(menu);

// 连接菜单项的triggered信号到槽函数
connect(menu, &QMenu::triggered, this, &MainWindow::onMenuItemTriggered);

// 创建树节点及子项
treeItem = new QTreeWidgetItem(ui->treeWidget);
treeItem->setText(0, "Root Item");

for (int i = 1; i <= 5; ++i) {
    QTreeWidgetItem *childItem = new QTreeWidgetItem(treeItem);
    childItem->setText(0, QString::number(i));
}

// 设置默认状态为可见
for (int i = 1; i <= 5; ++i) {
    treeItem->child(i - 1)->setHidden(false);
}

void MainWindow::onMenuItemTriggered(QAction* action)
{
    // 获取选择的菜单项对应的子项索引
    int index = menuItems.value(action, -1);
    
    if (index != -1) {
        // 获取子项并取反设置可见性
        QTreeWidgetItem *childItem = treeItem->child(index);
        childItem->setHidden(!childItem->isHidden());
    }
}

在上述代码中,我们使用了QMap来将菜单项与子项的索引进行映射,然后在槽函数onMenuItemTriggered中根据选择的菜单项获取对应的子项索引,并设置其可见性。通过点击菜单项,可以实现显示或隐藏对应的子项。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:addAction("2"); menu->addAction("3"); menu->addAction("4"); menu->addAction("5"); ui->pushButton->setMenu(menu); 通过菜单 1 2...">https://qt.0voice.com/?id=8638

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?