Qt 获取另一个类中对象的值
如何在另一个类中获取对象的值?例如,我有两个类(类WidgetA和类WidgetB),这两个类都是由类Widget创建的,如下所示: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 =
//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类中的QStringmystr
?正确解耦和分离关注点的最干净方法是添加一个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);
...
};