QT开发中文网

QStandardItem *rootItem = model->invisibleRootItem(); // 添加子项 QStandardItem *item1 = new QStandardItem("IP列表"); 添加之后我在另一个代码块 怎么拿到item1 指针

如果你希望在另一个代码块中访问 item1 指针,通常可以通过将其作为类的成员变量或使用一些数据结构来存储它。以下是几种常见的方法:

方法一:使用类成员变量

item1 声明为你的类的成员变量,这样你就可以在整个类中访问它。

class YourClass : public QMainWindow {
    Q_OBJECT

public:
    explicit YourClass(QWidget *parent = nullptr);
    ~YourClass();

private:
    QStandardItemModel *model;
    QStandardItem *item1; // 成员变量

};

// 在构造函数中初始化
YourClass::YourClass(QWidget *parent) : QMainWindow(parent) {
    model = new QStandardItemModel();
    item1 = new QStandardItem("IP列表");
    
    QStandardItem *rootItem = model->invisibleRootItem();
    rootItem->appendRow(item1);
}

// 在另一个代码块中使用
void YourClass::anotherFunction() {
    // 现在可以访问 item1
}

方法二:使用自定义数据结构(例如 std::map 或 std::unordered_map)

如果你需要存储多个项,可以考虑使用映射或者其他合适的数据结构:

#include <QMap>

class YourClass : public QMainWindow {
    Q_OBJECT

public:
    explicit YourClass(QWidget *parent = nullptr);
    ~YourClass();

private:
    QStandardItemModel *model;
    QMap<QString, QStandardItem*> items; // 使用QMap存储项目

};

// 在构造函数中初始化并存储指针
YourClass::YourClass(QWidget *parent) : QMainWindow(parent) {
    model = new QStandardItemModel();
    
    items["IP列表"] = new QStandardItem("IP列表"); // 存储到映射中
    
    QStandardItem *rootItem = model->invisibleRootItem();
    rootItem->appendRow(items["IP列表"]);
}

// 在另一个代码块中使用
void YourClass::anotherFunction() {
    if (items.contains("IP列表")) {
        auto itemPtr = items["IP列表"];
        // 使用 itemPtr...
    }
}

总结

  • 方法一:将 item1 作为类的成员变量,使得在该类的其他方法中可用。
  • 方法二:使用映射等数据结构以便灵活地管理多个项。

根据你的具体需求选择合适的方法。


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

目录导航
  • 方法一:使用类成员变量
  • 方法二:使用自定义数据结构(例如 std::map 或 std::unordered_map)
  • 总结
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=12984

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

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

    联系我们

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

    微信号:3007537140

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

    关注我们
    x

    注册

    已经有帐号?