ZBLOG

QStandardItemModel* model = qobject_cast(ui->treeView->model()); if (model) { // 获取当前选项的文本内容 itemText = model->itemFromIndex(currentIndex)->text(); QHash

从你的代码来看,你使用了 QTreeViewQStandardItemModel 来获取选中的项的文本内容。你提到这段代码不能正确获取下拉列表当前选中的内容,这里有几个可能的问题和建议:

  1. 确保当前索引有效:在获取 currentIndex 之前,确保它是有效的,并且确实指向一个被选中的项。例如:

    QModelIndex currentIndex = ui->treeView->currentIndex();
    if (!currentIndex.isValid()) {
       qDebug() << "No valid selection!";
       return;
    }
    
  2. 检查模型是否正确:确认你的 treeView 的模型确实是一个 QStandardItemModel。如果不是,则需要先进行类型转换。

    QStandardItemModel* model = qobject_cast<QStandardItemModel*>(ui->treeView->model());
    if (!model) {
       qDebug() << "The model is not a QStandardItemModel!";
       return;
    }
    
  3. 使用正确的索引访问项:在获取文本时,确保使用的是有效的索引。如果用的是 itemFromIndex(currentIndex),请确认 currentIndex 指向的是一个有效的项。

  4. 调试输出:可以在获取 itemText 后添加调试输出,以查看实际获得了什么值。

    QString itemText = model->itemFromIndex(currentIndex)->text();
    qDebug() << "Selected Item Text:" << itemText;
    
  5. 检查数据填充逻辑:最后,确保你在填充哈希表和设置标签时所依赖的数据结构(如 st_Studbanswer 和其成员)是按照预期工作且包含正确的信息。

这里是改进后的示例代码片段,你可以根据以上建议来调整你的实现:

QModelIndex currentIndex = ui->treeView->currentIndex();
if (!currentIndex.isValid()) {
    qDebug() << "No valid selection!";
    return;
}

QStandardItemModel* model = qobject_cast<QStandardItemModel*>(ui->treeView->model());
if (!model) {
    qDebug() << "The model is not a QStandardItemModel!";
    return;
}

// 获取当前选项的文本内容
QString itemText = model->itemFromIndex(currentIndex)->text();
qDebug() << "Selected Item Text:" << itemText;

QHash<int, st_Studbanswer*>& hash = ConnectClientInfo::GetSocketHash();
for (auto it = hash.constBegin(); it != hash.constEnd(); ++it) {
    st_Studbanswer* banswerData = it.value();
    if (banswerData && banswerData->strIp == itemText) {
        ui->label_3->setText(QString::number(banswerData->strecvData.currScore)); // 当前得分
        ui->label_5->setText(QString::number(banswerData->strecvData.m_daccuracy * 100, 'f', 2) + "%"); // 当前得分
    }
}

希望这些建议能帮助你解决问题!


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

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21419

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?