Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 获取另一个类中对象的值_Qt - Fatal编程技术网

Qt 获取另一个类中对象的值

Qt 获取另一个类中对象的值,qt,Qt,如何在另一个类中获取对象的值?例如,我有两个类(类WidgetA和类WidgetB),这两个类都是由类Widget创建的,如下所示: //widget.h #include <QWidget> #include <QtGui> class widgetA; class widgetB; class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent =

如何在另一个类中获取对象的值?例如,我有两个类(类WidgetA和类WidgetB),这两个类都是由类Widget创建的,如下所示:

//widget.h

#include <QWidget>
#include <QtGui>

class widgetA;
class widgetB;

class Widget : public QWidget
{
    Q_OBJECT
public:
    explicit Widget(QWidget *parent = 0);
private:
    QComboBox* comboBox;
    QStackedWidget* stackWidget;
    widgetA *wa;
    widgetB *wb;
};

class widgetA : public QWidget
{
    Q_OBJECT
public:
    widgetA(QWidget *parent = 0);
private:
    QString mystr;
    QLineEdit* lineEdit;
};

class widgetB : public QWidget
{
    Q_OBJECT

public:
    widgetB(QWidget *parent = 0);
    QLabel* label;
};

如何将WidgetB类中QLabel
label
的文本获取到WidgetA类中的QString
mystr

正确解耦和分离关注点的最干净方法是添加一个getter转发标签->text()

如果值更改时需要通知,请添加一个信号:

class widgetB : public QWidget {
...
Q_SIGNALS:
    void textChanged(const QString& text);
...
};

并在您更新标签时发出它。

您想在特定事件中获得它吗?@Kunal:我想启动我的应用程序谢谢您的回复,我想获得QLabel的值。我的应用程序启动了。当应用程序启动时,我可以将连接放入加载事件中吗?什么事件可以做到这一点呢?您可以使用上述API在Widget类的构造函数中做到这一点
QString widgetB::text() const //or more specific name depending on the context
{
    return label->text();
}
class widgetB : public QWidget {
...
Q_SIGNALS:
    void textChanged(const QString& text);
...
};