首页 > 解决方案 > 将 QString 从父级传递给子级 QT

问题描述

我需要在我的程序中从父窗口到子窗口获取一个 QString。

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

这就是我创建子窗口的方式。我已经QString Username;在我的父母声明中称为“登录”。

这就是我试图将 QString 传递到我的新窗口的方式:

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

但我收到错误:

“未在此范围内声明登录”

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

谢谢你的帮助!

标签: c++qtclassvariablesqstring

解决方案


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

你应该这样做:

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

菜单.cpp

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

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


推荐阅读