将 QString 从 parent 传递到 child QT

Passing QString from parent to child QT

我需要在我的程序中从 parent window 到 child window 获取一个 QString。

 menu=new user(this);  menu->show();

这就是我创建 child window 的方式。我在名为 "login" 的 parent 中声明了 QString Username;

这就是我尝试将 QString 传递给我的新 window:

的方式
 QString loginnn=((login*)this->parent())->Username 

但我收到错误消息:

"login was not declared in this scope"

虽然我已经将 "login.h" 文件包含到我的 "user.h" 文件中,而且 "login" 被标记为粉红色,QT 知道它是什么。

感谢您的帮助!

最简单的解决方案是在对象构造期间发送对所需字符串的引用

你应该简单地这样做:

menu = new user(this, username);
menu->show();

Menu.cpp

class User
{
private:
     QString &_login;
public:
     User(..., QString &login):
       _login(login)
}

现在你应该可以使用这个字符串了,无论如何在构造过程中给出它是有意义的