Как сделать график в Qt Creator

  Рет қаралды 33,548

Программный Кот

Программный Кот

Күн бұрын

Привет!
В этом выпуске создаем графики в Qt. В первой части видео мы подключим библиотеку QCustomPlot к проекту и нарисуем параболу, во второй части добавим анимацию, а в конце выпуска нарисуем график функции бэтмена!
Библиотеку можно скачать здесь: www.qcustomplo...
Формулы для графика бэтмена
1) 2*sqrt(-abs(abs(X)-1)*abs(3-abs(X))/((abs(X)-1)*(3-abs(X))))*(1+abs(abs(X)-3)/(abs(X)-3))*sqrt(1-(X/7)*(X/7))+(5+0.97*(abs(X-.5)+abs(X+.5))-3*(abs(X-.75)+abs(X+.75)))*(1+abs(1-abs(X))/(1-abs(X)))
2) -3*sqrt(1-(X/7)*(X/7))*sqrt(abs(abs(X)-4)/(abs(X)-4))
3) abs(X/2)-0.0913722*(X*X)-3+sqrt(1-(abs(abs(X)-2)-1)*(abs(abs(X)-2)-1))
4) (2.71052+(1.5-.5*abs(X))-1.35526*sqrt(4-(abs(X)-1)*(abs(X)-1)))*sqrt(abs(abs(X)-1)/(abs(X)-1))+0.9

Пікірлер: 59
@sergst8263
@sergst8263 Жыл бұрын
Очень благодарю! Искал материал по Qt, нашёл около десятка курсов, но эти ролики мне кажется лучше всех)) изложение и качество материала - просто огонь )) лайк и подписка ))
@desu-un4hw
@desu-un4hw 3 жыл бұрын
Спасибо тебе огромное, благодаря твоему видосу я смог решить одну из нужных мне задач и получить автомат по языкам программирования в ВУЗе. Желаю твоему каналу дальнейшего развития и успехов в будущем!
@-USER_NAME
@-USER_NAME 3 жыл бұрын
Наконец то нормальные курсы по Qt. Лайк подписка естестн 👍
@glebkublahanov
@glebkublahanov Жыл бұрын
Полезное видео, благодарю. Отдельный респект за хорошую музыку!
@АнтонБубнов-о6л
@АнтонБубнов-о6л 3 жыл бұрын
Ты лучший. Всё чётко и понятно. Продолжай в том же духе
@programmcat
@programmcat 3 жыл бұрын
спасибо! ))
@winstonsmith1984_
@winstonsmith1984_ 3 жыл бұрын
С таким кодом тоже хороший график получается ;) Нужно добавить кнопку radioButton_4 В void MainWindow::TimerSlot() добавить: else if (ui->radioButton_4->isChecked()) { double a = -3*X*log(X) + (exp(-(36*X-12)*(36*X-12)*(36*X-12)*(36*X-12)))/36; y.push_back(a); } И обработка нажатия кнопки: void MainWindow::on_radioButton_4_clicked() { h = 0.01; ui->widget->xAxis->setRange(0,2); ui->widget->yAxis->setRange(0,2); xBegin = 0-h; xEnd = 1 + h; N = (xEnd - xBegin)/h + 2; ChangeFunc(); }
@lmx2315
@lmx2315 4 ай бұрын
Спасибо за ролик, интересно смотреть.
@artemmmm
@artemmmm Жыл бұрын
А можно у осей координат значения убрать? Или это в библиотеке что-то делать нужно?
@victoria_l17
@victoria_l17 3 жыл бұрын
Спасибо, вы мне очень помогли💙 Странно, что на таком полезном канале мало подписчиков, желаю вам набрать миллионную аудиторию)
@programmcat
@programmcat 3 жыл бұрын
Спасибо
@alexgifworld981
@alexgifworld981 2 жыл бұрын
Здравствуйте, можно ли в setData передавать обычные массивы, под которые мы выделяли память с помощью malloc
@den_wd2910
@den_wd2910 Жыл бұрын
Может кто подсказать, почему не собирается проект после добавления файлов qcustomplot?
@vovan4ikgaming
@vovan4ikgaming 2 жыл бұрын
если у вас будет проблема с 'byte': ambiguous symbol, то это фикситься если забрать лишние using namespace std и пользоваться std:: где будут ошибки
@ЮрійМихайлов-о7х
@ЮрійМихайлов-о7х 3 жыл бұрын
Привет, хорошее видео! А как сделать так, чтобы пользователь выбирал значения из QComboBox и по нажатию на кнопку строился график? Просто когда вставляешь путь значения в y.push_back(ui->selection->currentText()), то компилятор ругается на несовместимость QString (то что я хочу вставить) и double(что предлагает компилятор). Знаешь как это сделать? Буду очень благодарен за ответ
@programmcat
@programmcat 3 жыл бұрын
Нужно добавить в код условие. Если выбран такой-то пункт в выпадающем списке - считать Y по такой-то формуле. Просто так брать значение из comboBox не нужно (конечно если ты не строишь прямую, у которой Y параллельный оси Х)
@ЮрійМихайлов-о7х
@ЮрійМихайлов-о7х 3 жыл бұрын
@@programmcat Ты имеешь ввиду сделать проверку из comboBox условными операторами? У меня в задании просто нужно задать коэффициенты перед функцией или в самом аргументе (к примеру у = а*х2 + b*х + с, у = a*sin(x)) и после нажатия кнопки построить график, я не совсем уверен, что можно будет сравнивать заданное значение и то, которое получено из comboBox с коэффициентами
@programmcat
@programmcat 3 жыл бұрын
@@ЮрійМихайлов-о7х в таком случае тебе нужно просто из строки сделать число, используй toDouble сразу после currentText()
@ЮрійМихайлов-о7х
@ЮрійМихайлов-о7х 3 жыл бұрын
@@programmcat У меня получилось. Спасибо)
@КириллГусарев-р5х
@КириллГусарев-р5х Жыл бұрын
Ты глупый
@SofaSofa-fw2bz
@SofaSofa-fw2bz Жыл бұрын
лучший лучший лучший А можно такой же видос по QTcharts??
@rristee
@rristee 3 жыл бұрын
Крутое видео! Продолжай в том же духе! Прям ответы на кучу вопросов просто и доступно! Супер!
@mortalcode
@mortalcode Жыл бұрын
Маленькая поправка. Вместо addData() желательно использовать setData(), так как в первом случае при повторном задании значений на графике сохранятся старые.
@losthalo428
@losthalo428 Жыл бұрын
у меня с setData тоже сохраняются старые значения
@mortalcode
@mortalcode Жыл бұрын
@@losthalo428 Нашли решение?
@losthalo428
@losthalo428 Жыл бұрын
@@mortalcode да, надо было делать x.clear(), y.clear() в начале функции
@cppprograms5868
@cppprograms5868 3 жыл бұрын
Сразу лайк!!! Классные видосы💪💪
@programmcat
@programmcat 3 жыл бұрын
рад, что понравилось
@nakamasama
@nakamasama 2 жыл бұрын
А у меня программа каждый раз компиллируется по пол-минуты. Есть ли другие нормальные адекватные библиотеки, которые являются динамическими, что бы не нужно было каждый раз ждать компиляцию библиотеки?
@programmcat
@programmcat 2 жыл бұрын
Наверное компьютер морально устарел
@nakamasama
@nakamasama 2 жыл бұрын
@@programmcat , у меня? AMD Ryzen 5 3400G, два с половиной года назад это был наилучший процессор с интегрированной графикой. Я все эти два года компиллирую программы не больше 1-2 секунд в Qt, а если в консоли вводить команды, то вообще моментально. Моя библиотека на 5000 строчек кода, которая постоянно увеличивается, компилируется не больше 1 секунды в Qt. А исходник этой библиотеки весит больше 3МБ и компилируется пол минуты. Так что проблемма не в процессоре, а в самой библиотеке. Там нет разделения на объявление классов и их определение. Там всё делается в одном .h файле, поэтому оно компилируется вместе с самой программой и каждый раз занимает время. Если бы объявления были написаны в .h файле, а определения в .cpp файле, то можно было бы один раз скомпилировать за пол-минуты библиотеку и потом каждый раз компилировать програму за секунду и просто подкладывать ей .dll файл. Это быстрее и удобнее. Поэтому я и спросил, не знаете ли Вы ещё каких-то библиотек, но которые не статические, а динамические. Если нет, то я попробую решить свою задачу на питоне. О, у меня крутая идея!!! Предлагаю Вам снять ролик, как писать программы на Питоне в Qt. Я знаю, что в Qt Creator можно дать Питоновский интерпретатор, но как писать программы на Питоне так и не разобрался.
@ПавелКуличков-щ6х
@ПавелКуличков-щ6х 2 жыл бұрын
Как сделать разрыв в функции ? напрмер tan(x)
@КириллГусарев-р5х
@КириллГусарев-р5х Жыл бұрын
Подумай
@RODIK_official
@RODIK_official 3 жыл бұрын
Спасибо деду за победу
@ЛеонидКраснов-ч5з
@ЛеонидКраснов-ч5з 2 жыл бұрын
а что делать если вместо pro файла cmake?
@КириллГусарев-р5х
@КириллГусарев-р5х Жыл бұрын
Ты глупый! При создании проекта вместо CMake выбери QMake.
@iiimahbl_3a_40_rpubeh3
@iiimahbl_3a_40_rpubeh3 3 жыл бұрын
Можешь могешь Ну это риал топ топовый
@Владислав-ъ6ф3ь
@Владислав-ъ6ф3ь 3 жыл бұрын
как сделать динамический график, где будет отображаться int и время?
@programmcat
@programmcat 3 жыл бұрын
не понял вопрос, какой int?
@КириллГусарев-р5х
@КириллГусарев-р5х Жыл бұрын
Ты глупый
@tmhcp1
@tmhcp1 2 жыл бұрын
" moc_qcustomplot.cpp:249:35: Unexpected namespace name 'QCP': expected expression " что делать при это ошибке пишу на маке?
@programmcat
@programmcat 2 жыл бұрын
гуглить
@tmhcp1
@tmhcp1 2 жыл бұрын
@@programmcat я это сделал первым делом, ни одного совета который мне помог я не нашел
@programmcat
@programmcat 2 жыл бұрын
У тебя библиотека не подключена
@tmhcp1
@tmhcp1 2 жыл бұрын
@@programmcat а как ее подключить? я наверное совсем валенок
@somacrafet3553
@somacrafet3553 Жыл бұрын
hhhhhhhhhhhhhh 8:00 Ops!
@sv9130
@sv9130 3 жыл бұрын
блин, какое же это все таки страшное убожество по сравнению с графиками матлаба
@programmcat
@programmcat 3 жыл бұрын
не очень удобно конечно, но у qt в целом функционал в разы шире чем у матлаба
@sv9130
@sv9130 3 жыл бұрын
@@programmcat да, но почему то не удается найти библиотеки где бы с помощью этого функционала было реализованно хоть что то похожее на figure, axes и plot объекты в матлабе.
@kvoistinov
@kvoistinov 3 жыл бұрын
@@sv9130 потому что QCustomPlot open source free библиотека, а за тот же матлаб как и расширенный функционал Qt надо платить! Так что довольствуйтесь тем, что есть на бесплатной основе.
@ПетрБоголюбов
@ПетрБоголюбов 2 жыл бұрын
Музыкальный кот - пиляттттттттттттттттттттттттттттттттттттттт! ДИЗ!
@uzbekistan_abror5508
@uzbekistan_abror5508 Жыл бұрын
:-1: ошибка: [Makefile.Debug:1821: debug/qcustomplot.o] Error 1 Что надо сделать плиз помогите
@persik1455
@persik1455 Жыл бұрын
в файл .pro добавь QMAKE_CXXFLAGS += -Wa,-mbig-obj
@luxury3680
@luxury3680 11 ай бұрын
Ты решил эту проблему?
@donsilvio858
@donsilvio858 9 ай бұрын
@@luxury3680 я решил, используя компилятор MSVC2019 64bit по умолчанию
Просто о таймерах в Qt Creator
8:37
Программный Кот
Рет қаралды 8 М.
рисование в GraphicsView | добавление объектов на сцену
9:33
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 27 МЛН
Don't look down on anyone#devil  #lilith  #funny  #shorts
00:12
Devil Lilith
Рет қаралды 48 МЛН
How to whistle ?? 😱😱
00:31
Tibo InShape
Рет қаралды 17 МЛН
клиент-сервер в QT | QTcpServer просто!
15:38
Программный Кот
Рет қаралды 36 М.
Qt - Компоновка виджетов 1 (для начинающих)
13:42
Лев Алексеевский
Рет қаралды 73 М.
ChatGPT - всё за 8 минут!
8:33
КРИПТОБРАТ
Рет қаралды 14 М.
Основы программирования на Qt. Сигналы и слоты
30:28
Industrial Software Engineering Online
Рет қаралды 21 М.
Ролик про нейросети БЕЗ ГРОМКОЙ МУЗЫКИ
16:30
Программный Кот
Рет қаралды 12 М.