|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|||||||||||
Qt C++, QPointF28.11.2019, 02:11. Показов 4402. Ответов 71
Всем добрый вечер.
Вопрос такой. Есть кусок функции.
Когда вызываю напрямую из этой же формы - все работает. (карта перемещается на нужную точку) Но стоит мне вызвать из другой формы...
Помогите, пожалуйста разобраться в чем причина. Мучаюсь неделю уже. Планировал передавать координаты из другой формы, но он даже с заданными координатами не хочет работать.
0
|
|||||||||||
| 28.11.2019, 02:11 | |
|
Ответы с готовыми решениями:
71
Нелады с void QGraphicsView::centerOn ( const QPointF & pos )
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 02.12.2019, 15:52 [ТС] | |
|
Байт,
Спасибо огромное, а можно ссылочку/ литературу? И что именно поможет в решении данной задачи? Познавать новое очень люблю, но курсач горит( Добавлено через 3 часа 21 минуту Но система свойств обладает еще одним замечательным свойством. Не имеющим отношения к Q_PROPERTY и всей лабуды с ним связанной. Это просто возможность экземпляру уже существующего класса давать новые поля. Без создания своего класса-наследника. В вашем случае это поле - просто уникальный номер. Могут быть и другие привязки. Например, у меня виджет был связан с неким текстом. Виджеты все одинаковые, а тексты разные. Неужто новый класс-наследник создавать? Не надо! Добавил свойство и все дела. Или каким-то виджетам одного класса что-то разрешается (по логике моей программы), а другим нет. Добавил булевое свойство - и нет забот. Когда я этот механизм открыл (не так давно) - жить стало много веселей. Можете подробнее об этом рассказать, очень многое из этого непонятно. Как можно добавить свойство? Добавлено через 2 часа 3 минуты Случайно попалась эта ссылка. Буду разбираться. Как вычисленное значение с одной формы передать на другую? Добавлено через 35 минут Алексей1153, Можете помочь с коннектом сигнала? Знаю, что не самое лучшее решение, но осталось неделя до сдачи( С property не смог разобраться(
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 02.12.2019, 16:00 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 02.12.2019, 16:02 [ТС] | |
|
Алексей1153,
Байт посоветовал использовать property и QVariant, однако у меня не хватило уровня знаний, чтобы в этом разобраться. Поэтому решил как временный вариант использовать Ваше решение, однако не совсем понимаю как правильно его подключить.
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
||||||
| 02.12.2019, 16:11 | ||||||
|
как пользоваться свойствами - да элементарно.
Как бы я поступил, ковыряясь в чужом проекте и имея немного времени. Нелюбителям глобальных переменных просьба закрыть глаза ![]() Делаю класс CMySignals, производный от QObject. У него сигнал Update. Объявляю глобальный объект CMySignals global_MyUpdater; Где-то в глубинах проекта создался mc = new MapControl(QSize(380,540)); , его слот update соединяем с сигналом global_MyUpdater. Как известно, сигнал можно соединять с сигналом, получаем этакий каскад. Сигнал от кнопки можно соединить с сигналом global_MyUpdater. В общем, любым способом срабатываем сигнал global_MyUpdater, он пинает все объекты, связанные с ним.
0
|
||||||
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 02.12.2019, 19:30 [ТС] | |
|
Алексей1153,
Все элементарно, даже завидно) А можете книжечку посоветовать?) Чтобы тоже элементарно было
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 02.12.2019, 19:39 | |
|
ivankillerg, книжки не знаю, постепенно само узнавалось по интернету
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 02.12.2019, 21:22 | ||
|
Но имхо, важнее всех именно Голова.
0
|
||
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
||||||
| 02.12.2019, 22:44 [ТС] | ||||||
|
Делаю класс CMySignals, производный от QObject. У него сигнал Update.
Уже на этом этапе вопрос. Делать класс это как ? Еще и производный от qobject... Можете помочь? Тоже по интернету учусь и на основе текущих задач, тк с теорией все плохо, увы. Это вот так?
0
|
||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
||||||
| 02.12.2019, 22:49 | ||||||
|
ivankillerg,
0
|
||||||
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
||||||
| 02.12.2019, 22:52 [ТС] | ||||||
|
Алексей1153,
Благодарю за поправку. Вот с этим что делать? Объявляю глобальный объект CMySignals global_MyUpdater; Не совсем понял где это обьявить/ как я понял этот обьект создается и в cpp и в h файлах? Взято из интернета Существует масса способов создать глобальный объект. Самый простой — объявить extern-переменную в заголовочном файле и создать её экземпляр в cpp:
0
|
||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 02.12.2019, 22:56 | |
|
ivankillerg, почитай теорию, чтобы знать преимущества и опасности глобальных переменных
(это первые попавшиеся ссылки из интернета) https://ravesli.com/urok-49-globalnye-peremennye/ Глобальные переменные
0
|
|
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
||||||
| 02.12.2019, 22:59 [ТС] | ||||||
|
Алексей1153,
получается должен примерно такое сделать.
Добавлено через 50 секунд Алексей1153, Благодарю, ушел читать.
0
|
||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 02.12.2019, 23:00 | |
|
ivankillerg, внимательно по первой ссылке читай. Там и примеры есть
0
|
|
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 02.12.2019, 23:28 [ТС] | |
|
?Алексей1153,
Аналогично, если вы хотите сделать глобальную переменную внешней (которую можно использовать в любом файле программы) — используйте ключевое слово extern: #include <iostream> extern double g_y(9.8); // g_y - это внешняя глобальная переменная и её можно использовать и в других файлах программы int main() { return 0; } #include <iostream> extern double g_y(9.8); // g_y - это внешняя глобальная переменная и её можно использовать и в других файлах программы int main() { return 0; } Так понимаю мне что-то вроде этого нужно
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|||||||||||
| 02.12.2019, 23:42 | |||||||||||
|
ivankillerg, вот там, где у тебя extern double g_y(9.8); - там объявляешь (без extern)
0
|
|||||||||||
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|||||||||||||||||||||
| 03.12.2019, 10:11 [ТС] | |||||||||||||||||||||
|
Алексей1153,
Такой вопрос, сейчас залез в фаил citymap.h (где находится mc ) и увидел вот такую вещь
Просто до этого не обращал внимания на using naespace тк не знал что это Добавлено через 33 минуты C глобальными переменными разобрался, вроде все легко. citymap.cpp
0
|
|||||||||||||||||||||
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
|
| 03.12.2019, 10:37 | |
|
ivankillerg, нет, в первом файле нет глобальных переменных.
В citymap.cpp - это у тебя константы, их не надо делать глобальными переменными. Вообще, не увлекайся глобальными переменными, это должен быть очень нечастый костыль! В идеале - вообще без глобальных переменных лучше. namespace - это область видимости Пример сейчас нарисовать не могу, занят немножко. Может, кто другой пока поможет
0
|
|
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 03.12.2019, 11:52 [ТС] | |
|
Алексей1153,
У меня mc связано с пространством имен файлов qmapcontrol... Касаемо глобальных - все ради теста. Проверил работает или нет. Сейчас, как костыль, попробую добавить кнопку обновить. Но все же хотелось как то удобнее для юзера. Это единственный момент, который мешает закончить проект ![]() Базу данных написал. Карта готова, а связать их уже 3 недели не могу..
0
|
|
|
фрилансер
6501 / 5737 / 1134
Регистрация: 11.10.2019
Сообщений: 15,357
|
||||||||||||||||
| 03.12.2019, 12:29 | ||||||||||||||||
|
ivankillerg,
1) пост №29 - класс CMySignals. Оформляешь в отдельном "CMySignals.h" файле. 2) в файле, где у тебя main(), после всех инклудов добавляешь объявление переменной
0
|
||||||||||||||||
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 03.12.2019, 15:55 [ТС] | |
|
Алексей1153,
1. Пост 29 сделал 2. В фаил main.cpp добавил 3.пункт - долго искал так и не нашел. 4пункт - при попытке ввести -> Update каждый раз "->" заменяется на точку connect не подсвечивается, выводит ошибку( member reference type "CMySignals" is not a pointer
0
|
|
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|