|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|||||||||||
Qt C++, QPointF28.11.2019, 02:11. Показов 4377. Ответов 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|
| 02.12.2019, 16:00 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 30.04.2015
Сообщений: 73
|
|
| 02.12.2019, 16:02 [ТС] | |
|
Алексей1153,
Байт посоветовал использовать property и QVariant, однако у меня не хватило уровня знаний, чтобы в этом разобраться. Поэтому решил как временный вариант использовать Ваше решение, однако не совсем понимаю как правильно его подключить.
0
|
|
|
фрилансер
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
||||||
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
||||||
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|||||||||||
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
|
| 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 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
|
||||||||||||||||
| 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
|
|
|
Новые блоги и статьи
|
|||
|
мат медиц модель 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
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|