Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118

Передача переменной через сигнал

09.10.2021, 22:50. Показов 11268. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Передал переменную через сигнал в другую форму и столкнулся с проблемой что я не знаю как эту переменную передать в другие функции.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2021, 22:50
Ответы с готовыми решениями:

Передача указателя на сигнал
Добрый день =) Перевожу программу с делфи на Qt. В делфи передавал указатели на функции с помощью записей(структур) RR = record ...

Сигнал-слот, передача параметров
День добрый, у меня был опыт работы с сигналами и слотами, но ни разу не было случаи когда нужно передавать параметры, объясните...

Передача указателя через сигнал
Здравствуйте. Есть процесс, который создает область разделяемой памяти и порождает дочерний процесс, которому сообщает ключ к этой...

41
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
14.10.2021, 12:22  [ТС]
Студворк — интернет-сервис помощи студентам
sdf45
Возникла проблемка не большая. Я так и не понял как сделать чтобы формы видели друг друга, поскольку я создал ещё одну форму и мне надо чтобы я мог туда отправить данные и потом вернуть другие данные, но не могу сделать это из-за того что не могу определить в новой форме "EditFile"
C++
1
Mainwindow *mwindow.
Добавлено через 10 минут
sdf45
Вообще можно чтобы форма была подключена к нескольким другим формам?

Добавлено через 3 часа 13 минут

Добавлено через 1 час 0 минут
Выяснил что форма может быть подключёна к нескольким форма но я так и не смог передать значения переменных из MainWindow в EditFile.

Добавлено через 6 минут
Это мой личный дневник
День 1.
Подключил форму EditFile к MainWindow но оказалось что MainWindow опять не видит мою форму и не берёт её значение в свою глобальную переменную. Не знаю выживу ли я с такой практикой.

Добавлено через 12 минут
Дополнение к записи с 1 дня.
Понял что приравнял пустую переменную к сигналу и поэтому произошла ошибка, но остался вопрос смогу ли я подключить mainwindow к editfile?
Конец записи.
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
14.10.2021, 15:07
Black King, для доступа к форме из другой форме можно хранить указатель на форму2 в форме1, как у Вас был указатель MainWindow * window в классе Dialog. Получить адрес окна в такой указатель можно, когда созданы экземпляры обоих форм. Применительно к Вашему коду можно получить ссылку на MainWindow в его конструкторе, либо в main.cpp

На практике получается:
В Dialog.h
C++ (Qt)
1
2
3
4
5
6
#include "mainwindow.h"
class Dialog{  
...
MainWindow *mwindow=nullptr;
...
}
Если создаём диалог в конструкторe MainWindow
C++ (Qt)
1
2
3
4
5
MainWindow::MainWindow(...)
{   
Dialog* mdialog=new Dialog;
mdialog->mwindow=this;
}
Если в main.cpp
C++ (Qt)
1
2
3
MainWindow w;
Dialog* mdialog=new Dialog;
Dialog->mwindow= &w;
Теперь можно обращаться к экземпляру MainWindow в классе Dialog
C++ (Qt)
1
2
3
4
void Dialog::someFunction()
{ 
if(mwindow) mwindow->setWindowTitle("12345");
}
Я такой подход стараюсь уже не использовать, так как легко запутаться где кто к чему имеет доступ ( хотя у меня знаний сейчас не хватает сказать, говнокод это или нет ) поэтому предпочитаю сигналы слоты для обмена данными.
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
14.10.2021, 17:40  [ТС]
Так это и сам сделал, а мне бы понять как из mainwindow в dialog отправить данные, поскольку я использовал метод, который вы мне показали до этого и мне форма выдаёт ошибку.
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
14.10.2021, 18:13
Цитата Сообщение от Black King Посмотреть сообщение
как из mainwindow в dialog отправить данные
в прошлый раз данные отправлялись из Dialog в MainWindow
C++ (Qt)
1
connect(mwindow, &Dialog::red, this, &MainWindow::blue);
представьте, что они теперь поменялись местами:
- создайте в MainWindow сигнал по аналогии c void red(QString); из Dialog, например
C++ (Qt)
1
 void MainWindow::mainWindowSignal(QString);
- создайте в Dialog слот по аналогии c void blue(QString txt); из MainWindow, например
C++ (Qt)
1
void Dialog::dialogSlot(QString);
- сделайте коннект по аналогии с прошлым примером, что-то вроде
C++ (Qt)
1
connect( this, &MainWindow::mainWindowSignal, mwindow, &Dialog::dialogSlot);
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
15.10.2021, 19:28  [ТС]
connect( this, &MainWindow::mainWindowSignal, mwindow, &Dialog::dialogSlot);

А это запись точно должна работать?
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
15.10.2021, 19:41
Цитата Сообщение от Black King Посмотреть сообщение
А это запись точно должна работать?
а почему нет? правда учтите что mwindow это ж должен быть Dialog, лутше Dialog *mdialog =new Dialog сделать, а то путаница в названиях.
Цитата Сообщение от sdf45 Посмотреть сообщение
connect( this, &MainWindow::mainWindowSignal, mwindow, &Dialog::dialogSlot);
этот коннект делается в конструкторе MainWindow, соединяем сигнал от него со слотом экземпляра Dialog.
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
15.10.2021, 20:03  [ТС]
А где вы это обо всём узнали? Вы какую-то специализированную литературу читаете или вы в компании работаете которая занимается разработками в QT или образовательное учреждение?
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
15.10.2021, 20:22
Black King, просто хобби, да и знания мои очень слабые на данный момент, то что обсуждаем тут-это самые азы Qt
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
15.10.2021, 20:29  [ТС]
sdf45
Цитата Сообщение от sdf45 Посмотреть сообщение
connect( this, &MainWindow::mainWindowSignal, mwindow, &Dialog::dialogSlot);
Кстати, судя по коду и вашим словам что Dialog это MainWindow, получается я отправляю из Dialog сигнал и принимаю в MainWidnow слот этот сигнал, а мне надо из MainWindow отправить сигнал в Dialog. Я уже принимаю сигнал в MainWindow от Dialog и когда я пытаюсь сделать чтобы Dialog отправлял сигнал у меня выскакивает куча ошибок с набором символов.
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
15.10.2021, 20:36
Цитата Сообщение от Black King Посмотреть сообщение
судя по коду и вашим словам что Dialog это MainWindow
это где?
у Вас просто в коде который был в архиве , экземпляр Dialog назывался window, я и предложил переименовать в mdialog, но это не суть...
Покажите код чего там не получается
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
15.10.2021, 20:36  [ТС]
Не внимательно прочитал. Понял вроде бы.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
15.10.2021, 21:10
Black King, а ты как создаёшь новую форму?
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
16.10.2021, 16:37  [ТС]
alexu_007
Вложения
Тип файла: mp4 2021-10-16 20-36-26.mp4 (1.87 Мб, 11 просмотров)
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
16.10.2021, 20:17  [ТС]
Прошло 3 дня с моей последней записи. Я всё же смог сделать задуманное но осталось куча дел и остаётся вопрос, смогу ли я пережить эту практику? Я лишь могу предполагать но ясно одно, сколько бы я не учился, всё равно я буду думать что я тупой ебл*н.

"Уезжает на верхом на коне в закат."
"Надпись The End".
"В ролях Black King: Беспалуха он же бес, а также клоун."
"Автор идеи: sdf45"
"Какой-то чел с камерой: alexu_007"
"И другие"
"Все права защищены"
0
Покинул чат.
1133 / 728 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
16.10.2021, 20:25
Black King,
а че это я автор идеи? я скорее суфлер, шептю подсказки иногда
0
 Аватар для Ender Che
521 / 411 / 77
Регистрация: 29.05.2018
Сообщений: 1,363
16.10.2021, 21:02
Цитата Сообщение от Black King Посмотреть сообщение
сколько бы я не учился, всё равно я буду думать что я тупой ебл*н
Почитайте Шлее, например. И чтение стандартного хелпа кутишного никто не отменял. А также просмотр примеров, в большом количестве прилагаемых к самому фреймворку.

Я вот три года потихоньку осваиваю Qt, но всё равно не считаю себя специалистом. Чисто любителем.
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
17.10.2021, 18:51  [ТС]
Ender Che
К сожалению в нашей профессии стать на 100% специалистом невозможно.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,341
17.10.2021, 21:57
Ничё не понял из видео. Что-бы создать в проекте вторую форму, нужно кликнуть правой мышой по названию проекта, и выбрать в меню: добавить новый -> Qt -> класс формы Qt Designer. В результате в проект должны добавиться файлы .cpp .h и .ui с именем новой формы.
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
18.10.2021, 07:04  [ТС]
alexu_007
Ну я так и делаю.
0
0 / 0 / 0
Регистрация: 03.04.2021
Сообщений: 118
18.10.2021, 07:13  [ТС]
"Реверс"
"Пауза"
sdf45
В общем что-то я обкакался и поспешил и не проверил, что у меня значение переменной не передаётся из MainWindow в EditFile
Вложения
Тип файла: rar bking.rar (11.2 Кб, 0 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2021, 07:13

передача переменной через header
нужно передать константу через header на другую страницу и там вывести ее. Что нужно изменить не подскажете? index.php <?php...

Передача переменной через Eventhandler
есть метод public static void LinkedLabelClick(object sender,EventArgs e??) { ... } нужно передать входное значение (int...

Передача переменной через функцию
никак не могу разобраться... Из $row состоит ссылка, нужно, чтобы ...$cid присваивал действующее значение $row, т.е. ../index.php?cid=$row...

Передача переменной через форму
Комрады, прошу совета! В VBA новичок, не могу разобраться с передачей переменной через элемент формы TextBox. Код упростил. Создаю...

Передача переменной через ссылку
Привет Нажимаю на ссылку index.php?doska=Guest449_&tip=1,и в самом верху index.php прописал 3 проверки echo $doska; И не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru