0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
1 | ||||||
Передача переменной в другой класс24.12.2015, 10:52. Показов 11085. Ответов 38
Метки нет (Все метки)
Привет всем. Извиняюсь если повтор, но похожей темы не нашел.
Подскажите пожалуйста как передать значение переменной QString из одного класса в переменную QString другого класса. Понимаю, что нужно это сделать при помощи сигналов и слотов, но какой сигнал использовать? если на выбор не дается ни одного и пытаюсь вот таким образом законнектить
expected primary-expression before ',' token как понимаю ожидает еще какого-то действия, вот и не могу понять что он еще хочет. пытался законнектить через свой сигнал, но там к этой ошибке - expected primary-expression before ',' token прибавилось еще несколько p.s. познания не большие, если что не ругайте
0
|
24.12.2015, 10:52 | |
Ответы с готовыми решениями:
38
Передача QGraphicsItem в другой класс Передача ссылки на функцию класса Виджет в другой класс Отправка переменной в другой класс из ToolBar сигналом triggered Передача переменной по ссылке в другой класс |
29.12.2015, 12:24 | 21 |
Ну и для полноты картины,
connect требует указатели на метаобъект (производный QObject). Это не значит, что нужно пизать везде указатели, но connect(&Name_liga, SIGNAL(sendStr(QString)), &gnL, SLOT(getNL(QString))); было бы уже на 1/32 шага ближе.Ты распиши толком, кто кому должен чего отослать. Например, QLineEdit при изменении текста должен при изменении строки её отдавать её в MyTextWorker на проверку, а MyTextWorker должен её принимать и отправлять сигнал, если есть ошибка. Тогда сигнал нужен для MyTextWorker при ошибке, и по слоту в MyTextWorker и InputDialog для передачи текста по кругу.P.S. Передаётся сигнал в виде emit MyDurtyLoliPornHaveFinallyDownloadedAndOpenedRightAtTheMomentMyMomCameInMyRoom("FckDudeThatsAwfull!", m_awfullLevel); Ну, мало ли, вдруг ты не в курсе?
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
04.01.2016, 11:20 [ТС] | 22 | |||||
Горбаг, вот мой main.cpp
icpu, я хочу передать строку введенную в QLineEdit entNewL; объекту другого класса С Новым годом всех и спасибо, что помогаете!
0
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
|
04.01.2016, 21:04 | 23 |
А что за объект другого класса, можно поподробнее? Куда нужно передать строку?
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
04.01.2016, 23:21 | 24 |
Посмотрите пример.
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
04.01.2016, 23:29 | 25 |
Забыл сказать.
Сначала введите что-нибудь в QLineEdit и нажмите верхнюю кнопку. Потом закройте диалоговое окно и нажмите нижнюю. Далее начните набирать в главном окне. Вроде так.
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
05.01.2016, 09:04 [ТС] | 26 | |||||
ldir82, проект не полный, у себя запустить не могу,
alexu_007, выражусь точнее, в окончаловке мне нужно передать строку из переменной одного класса в переменную другого класса, но как я понимаю делать это надо через объект
0
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
|
05.01.2016, 09:36 | 27 |
Ну, запустил - у меня всё работает. При нажатии на верхнюю кнопку появляется диалоговое окно со скопированным текстом. При нажатии нижней кнопки появл. диалоговое окно без текста, но при введении текста в основном окне текст синхронно меняется и в диалоговом. Так и должно быть?
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
05.01.2016, 12:03 | 28 |
alexu_007, Да так и должно быть.
0
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
|
05.01.2016, 12:53 | 29 |
А в чём проблема тогда?
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
05.01.2016, 12:59 | 30 |
Так проблема не у меня, а у товарища SergCold. Я ему пример сделал.
Добавлено через 3 минуты SergCold, проект полный. Полнее некуда. А конструкторов может быть много. Все зависит от нужд. В конструкторе могут быть переданы необходимые данные, например для инициализации объекта.
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
05.01.2016, 13:02 [ТС] | 31 | |||||
ldir82, говорю, у меня не запускается проект и в работе оценить его не могу. а по коду тоже много вопросов(коменты не отображаются)
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
05.01.2016, 13:21 | 32 |
SergCold, для начала, чтобы хотя бы увидеть комментарии, поменяй в настройках Qt кодировку (параметры - текстовый редактор - поведение - кодировка файлов). Поставь либо system, либо Windows-1251. Да, пример сделан в версии 4.8.1
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
05.01.2016, 13:44 [ТС] | 33 | |||||
ldir82, здесь как понимаю при нажатии на кнопку создается объект dialog которому передается в качестве аргумента введенный текст, this - не понимаю что делает
0
|
60 / 56 / 21
Регистрация: 31.03.2014
Сообщений: 234
|
|
05.01.2016, 16:57 | 34 |
SergCold, все верно. this это адрес текущего объекта (в данном случае MainWindow).Он передается в качестве аргумента конструктору класса Dialog. А значит объект по адресу this будет родителем т.е. он будет отвечать за его уничтожение (объекта dialog).
1
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
|
06.01.2016, 09:14 | 35 |
Передать в другой класс можно глобальную переменную. Говорят, это очень неправильно - но работает.
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
||||||
06.01.2016, 10:05 [ТС] | 36 | |||||
Всем спасибо!!! Разобрался, оказывается коннект нужно было делать до того как кнопка ОК будет нажата, иначе уже никакого сигнала издаваться не будет и поэтому никак не мог передать строку. Конечно хотелось передать строку которую подтвердили нажатием кнопки ок, но так тоже пойдет
0
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
||||||
06.01.2016, 10:50 | 37 | |||||
Да всё можно сделать так как захочешь, а не так как получилось. Сигнал законнектить с твоим приёмником и передавать в нем переменную по нажатию кнопки.
0
|
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 23
|
|
06.01.2016, 11:19 [ТС] | 38 |
alexu_007, пробовал так, не срабатывает сигнал, компилятор вроде все норм выдает но соединения не происходит
0
|
661 / 662 / 106
Регистрация: 29.05.2015
Сообщений: 3,967
|
|
06.01.2016, 16:17 | 39 |
У других работает. Значит где-то ошибаешься. Выложи свой код где не срабатывает и спроси почему.
0
|
06.01.2016, 16:17 | |
06.01.2016, 16:17 | |
Помогаю со студенческими работами здесь
39
Передача значения переменной Activity в другой класс Передача значения переменной одной формы в описание переменной другой Передача переменной в другой скрипт Передача переменной в другой скрипт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |