ZBLOG

m_iPaperIndex; for (auto it = parent()->GetlsAnswerRet().constBegin(); it != parent()->GetlsAnswerRet().constEnd(); ++it) { QString key = it.key(); stSendDataOnePaper value = it.value(); // 在这里处理...

如果 m_lsAnswerRet 存在于父窗口的某个类中,并且你想在子窗口中遍历这个哈希表,可以按照以下步骤进行:

  1. 确保能够访问父类的方法:确保你的子类可以通过调用父类的方法来获取 m_lsAnswerRet。通常情况下,你可能需要一个公有方法来返回该成员。

  2. 遍历 m_lsAnswerRet:使用你提供的代码模板,前提是确保正确引用了父窗口。

下面是一个示例,展示如何在子类中访问并遍历来自父窗口的 QHash<QString, stSendDataOnePaper>

父类 (ParentClass)

class ParentClass : public QWidget {
    Q_OBJECT

public:
    QHash<QString, stSendDataOnePaper> m_lsAnswerRet;

    // 方法返回 m_lsAnswerRet 的常量引用
    const QHash<QString, stSendDataOnePaper>& GetlsAnswerRet() const {
        return m_lsAnswerRet;
    }
};

子类 (ChildClass)

class ChildClass : public QWidget {
    Q_OBJECT

public:
    ChildClass(ParentClass* parent) : QWidget(parent) {}

    void printDataFromParent() {
        for (auto it = parent()->GetlsAnswerRet().constBegin(); it != parent()->GetlsAnswerRet().constEnd(); ++it) {
            QString key = it.key();
            stSendDataOnePaper value = it.value();
            // 在这里处理 key 和 value
            qDebug() << "Key:" << key << "Value:" << value;  // 假设stSendDataOnePaper支持输出
        }
    }

protected:
    ParentClass* parent() const {
        return static_cast<ParentClass*>(QWidget::parent());
    }
};

使用说明

  1. 构造函数:在子类的构造函数中,你可以接受一个指向父窗口的指针。这样,子窗口就能访问到父窗口中的数据。

  2. 遍历哈希表:通过调用 parent()->GetlsAnswerRet() 来获取哈希表,并使用迭代器遍历。

  3. 类型转换:如果你的 ChildClass 是从 QWidget 继承而来的,确保使用适当的方法将其转化为 ParentClass* 类型,以便访问父窗体中的方法和属性。

注意事项

  • 确保你的 stSendDataOnePaper 类能够通过 qDebug() 打印。如果没有重载流插入操作符(<<),请考虑添加。
  • 当访问父对象时,要注意空指针情况。最好检查传递给子对象的父对象是否有效。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?