1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
1 | |
Двигать точку слайдерами25.03.2017, 11:14. Показов 1576. Ответов 18
Метки нет (Все метки)
Кто может сделать мелкий проект со всеми фаилами .h .pro .cpp?
Двумя слайдерами двигать точку на экране по X,Y. В примере “examples\widgets\sliders” просто хардкор…
0
|
25.03.2017, 11:14 | |
Ответы с готовыми решениями:
18
Как двигать Label в Дизайнере Нарисовать, двигать, сохранить линию Qt 4.8.4 Как двигать progressBar из другого потока? Как двигать точку на графике excel? |
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.03.2017, 13:19 [ТС] | 3 |
Я не знаю что такое qml…
Можете набросать пример qt? Добавлено через 1 час 0 минут Qt 4.8 C++
0
|
25.03.2017, 16:00 | 4 | |||||||||||||||
В с++ это тоже относительно просто.
Создаёте проект на основе QMainWindow с формой(ui). Открываете форму, размещаете на ней два QSlider с именами sliderX и sliderY. Размещаете необходимый виджет, выполняющий роль точки(с именем point). В .h у MainWindow пишите:
1
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
25.03.2017, 17:23 [ТС] | 5 |
0
|
26.03.2017, 11:06 | 6 | |||||
Qml можно так
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
26.03.2017, 18:16 [ТС] | 7 |
Peoples, Так что Qt ерунда нужно изучать QtQuick или QML?
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||||||||||||||||
26.03.2017, 20:38 [ТС] | 8 | |||||||||||||||
Непашет…
mainwindow.h
mainwindow.cpp
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
27.03.2017, 00:14 [ТС] | 9 |
Исправил, но зависает если отпустить слайдер
Нужно написать public slots: Добавлено через 3 часа 13 минут Соединил Horizontal slider и Spin Box чисто в Design перетаскиванием. Так теперь в ui_mainwindow.h почему то появились слоты теперь только тут…+каша из неведомого кода… Ох и бардак этот Qt… Почему нельзя было сделать один и тотже строгий порядок задания и расположения соединений… А если проект с вашим кодом и 2 слайдерами собирается без ошибок то почему зависает приложение то на одном слайдере то на другом?
0
|
27.03.2017, 12:09 | 11 |
Excalibur921, не стоит ставить layout, когда управляешь положением элемента через x и y.
Также нет ничего удивительного в том, что Slider перестаёт работать, если он загораживается каким-то другим элементом(к примеру, Label). Элементы, созданные после, по умолчанию загораживают более старые элементы. Либо делайте так, чтобы элементы не пересекались, либо выставляйте им нужный уровень по z. В дизайнере это можно делать с помощью пунктов "вперёд" и "назад" контекстного меню элемента. Ещё какой... Особенно для тех людей, которые пренебрежительно относятся к документации. Впрочем с такой позиции любая большая библиотека для стороннего человека - бардак.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
27.03.2017, 12:39 [ТС] | 12 |
Изначально Label вообще не мешал слайдерам. Спецом сделал его далеко. Помогло убрать “Break Layout” а был “Lay out in a Grid” теперь пашет. Не знаю где эти Z настройки. А причина зависания значит был чисто баг Qt.
0
|
27.03.2017, 15:12 | 13 |
Excalibur921, тут такое дело: либо применяется менеджер компоновки(layout), либо вы управляете геометрией виджетов самостоятельно. В противном случае возможна некорректная работа. Это относится не только к Qt, а вообще к любому другому менеджеру UI.
Программа у вас тут не зависала(меню и прочие вещи вполне себе работали), некорректно работала лишь передача событий ввода к Slider из-за сломанного вами layout.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
27.03.2017, 17:33 [ТС] | 14 |
Wyn,Можете набросать как сделать такую прогу? =)
2 слайдера управляют параметрами a0 a1 бинарный массив Array0 размером 300 на 300 читаем параметры a0 a1 делаем 100 итераций и рисуем горизонтальный отрезок в Array0 растеризуем массив Array0 в картинку Суть проги: попиксельно рисуем горизонтальный отрезок, началом координат отрезка управляют слайдеры. Есть прога которая примерно это делает готовая . Но в ней так много фаилов… черт ногу сломит. Mutex взяли…он тут не нужен.
0
|
27.03.2017, 18:32 | 15 |
Началом координат относительно чего? Я так понимаю рисунок вначале генерируется куда-нибудь в QImage, а уже потом отображается. Если начало координат в этом рисунке - то позиционирование чего либо в нём это исключительно проблемы алгоритма, который его рисует.
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
27.03.2017, 19:54 [ТС] | 16 |
0
|
1471 / 826 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
28.03.2017, 13:05 [ТС] | 18 |
Хотелось бы сделать прогу чтобы рисовала странные аттракторы как здесь
http://nathanselikoff.com/trai... and-opengl Только+окрас картой градиента. Найден был проект на Qt 4 где 4 слайдера управляют параметрами в уравнении. QStrange-master.zip Но понять его…100500 фаилов+ спагетти в коде.. И все эти 10 фаилов чтобы точками рисовать…рендер жуткий…белые точки. Просто бинарный массив. А нужен как по ссылке выше со сглаживанием+окрас карта градиента. Как не мучаю это QT так и остается он black box непонятно… Примеры в справке просто швах…как троллинг новичка а не примеры. А ведь они и назывались Trolltech неспроста. Такое чувство что их не для обучения делали а для поиздеваться. Книги тоже не лучше, сначала hello world, потом кнопка, потом внезапно в бланшет ударила молния и код на 100500 файлов… и так все 3 разных книги толку ноль =). Сначала выносит мозг ненужным написанием кода вручную потом говорит все это бред юзайте Designer... Уже склоняюсь к забить на gui на Qt и сделать в glut слайдер это точка на отрезка таскаемая мышкой. Так и код будет в 100 раз меньше, понятность кода в 100 раз больше И эти книги учебники по GUI мля по 1000 страниц каждая ппц. Код на glut всей проги со всеми наворотами дающий красивый рендер будет в 1000 раз меньше одной справки по слайдеру в qt. И пахать будет в 1000 раз быстрей и читаемость проще. И вот вишенка на торте…показывают код рисующий 2 слайдера без танцев с бубном… Опять новая технология qtQuick без вообще единой книги на русском.. И как назло у меня не ставиться выше qt 4.8 вот так на практике кроссплатформенности и не пахнет…
0
|
28.03.2017, 13:19 | 19 |
Excalibur921,
При чём тут виджеты и Qt Quick, если у вас проблемы с рисованием в canvas? Если нужно - рисуйте в opengl, потом выводите изображением с помощью QOpenGLWidget или подобного(в старых версиях - QOGLWidget).
0
|
28.03.2017, 13:19 | |
28.03.2017, 13:19 | |
Помогаю со студенческими работами здесь
19
Двигать точку по прямой с шагом, в момент, когда луч проходит над ней Калькулятор со слайдерами Unity 2D - Как не двигать фон, как двигать объекты по клеткам, как изменить камеру Увеличение временного интервала между слайдерами Owl Carusel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |