【问题标题】:Passing QString from parent to child QT将 QString 从父级传递给子级 QT
【发布时间】:2018-05-04 09:09:55
【问题描述】:

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

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

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

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

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

但我遇到了错误:

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

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

感谢您的帮助!

【问题讨论】:

  • 您是否使用对象名称作为类型名称:((login*)this->parent())->Username
  • 哪个是父类,哪个是子类?你不能在孩子的构造函数中传递QString &QString const &,同时创建它吗?
  • ((login*)this->parent())->Username - 听说过封装吗?
  • 我认为你必须看一些中级 c++ 教程。你可以看到这个频道youtube.com/watch?v=6KtOzh0StTc&list=PL2D1942A4688E9D63

标签: c++ qt class variables qstring


【解决方案1】:

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

你应该这样做:

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

Menu.cpp

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

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

【讨论】:

  • 非常感谢您的帮助!
  • 如果此答案解决了您的问题,请将其设置为接受的答案
猜你喜欢
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 2019-12-04
  • 1970-01-01
相关资源
最近更新 更多