gpt4 book ai didi

c++ - 从另一个类访问变量

转载 作者:行者123 更新时间:2023-11-28 03:14:58 25 4
gpt4 key购买 nike

我有两个类,MyClassWidget。下面是 MyClass 类,我想从我的 Widget 类中获取 str 变量。这是怎么做到的?

class MyClass : public QObject
{
Q_OBJECT

public:
MyClass();
void fetch();

public slots:
void replyFinished(QNetworkReply*);

private:
QNetworkAccessManager* m_manager;
};

MyClass::MyClass()
{
m_manager = new QNetworkAccessManager(this);

connect( m_manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
}

void MyClass::fetch()
{
m_manager->get(QNetworkRequest(QUrl("http://stackoverflow.com")));
}

void MyClass::replyFinished(QNetworkReply* pReply)
{
QByteArray data=pReply->readAll();
QString str(data);

//this str should be available in my widget class
}

编辑:这是小部件的重要部分

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
Q_OBJECT

public:
explicit Widget(QWidget *parent = 0);
~Widget();

private slots:
void on_pushButton_clicked();

private:
Ui::Widget *ui;
};

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}

Widget::~Widget()
{
delete ui;
}

void Widget::on_pushButton_clicked()
{
//here str should be accessed
}

最佳答案

如果您希望函数中的 str 变量可用于类或其他函数,这里有两种选择:

  1. 从函数中返回它。
  2. 在 MyClass 中声明一个变量来保存字符串并设置值的变量。

案例 1:从函数返回

QString MyClass::replyFinished(...)
{
QString str(data);
return data;
}

案例二:声明一个类成员变量

class MyClass
{
public:
QString m_replyStr;
};
//...
void MyClass::replyFinished(...)
{
QByteArray data = pReply->readAll();
m_replyStr = data;
}

用一个你想做什么的例子来修改你的问题会很有帮助。

关于c++ - 从另一个类访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com