Передача QString от родительского к дочернему QT - PullRequest
0 голосов
/ 04 мая 2018

Мне нужно, чтобы в моей программе была одна строка QString из родительского окна в дочернее окно.

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

Вот как я создаю дочернее окно. У меня QString Username; объявлено в моем родителе под названием "логин".

Вот как я пытаюсь передать QString в мое новое окно:

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

Но я получаю ошибку:

"логин не был объявлен в этой области"

Хотя я включил файл «login.h» в мой файл «user.h», а также «login» помечен розовым цветом, и QT знает, что это такое.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 04 мая 2018

Самое простое решение - отправить ссылку на нужную строку во время создания вашего объекта

Вы должны просто сделать это:

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

Menu.cpp

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

Теперь вы должны иметь возможность использовать эту строку, которую в любом случае имело бы смысл дать во время строительства

...