Рисование в Qt Creator за 6 минут

Привет!
Этот короткий выпуск полезен для тех, кто только начинает осваивать рисование в Qt. Мы научимся переопределять функцию paintEvent(), рисовать геометрические фигуры, настраивать контур и заливку.
Эпизоды:
00:00 - переопределение функции
01:21 - рисование объектов
04:08 - настройка контура
05:25 - настройка заливки
#QtCreator #ПрограммныйКот

Пікірлер: 48

  • @tylerdurden9008
    @tylerdurden9008Ай бұрын

    Очень понятно и лаконично. База! Спасибо за выпуск !

  • @cppprograms5868
    @cppprograms58683 жыл бұрын

    Прекрасный канал по Qt и С++. Не бросайте этот канал

  • @programmcat

    @programmcat

    2 жыл бұрын

    Спасибо!

  • @Scherbakov
    @Scherbakov Жыл бұрын

    Ёмко, информативно и поучительно! Супер!

  • @user-ro5yh5ct5p
    @user-ro5yh5ct5p3 жыл бұрын

    Автор красава все получилось как на видео очень помог спасибо подписка лойс

  • @user-xp8rz5lw1e
    @user-xp8rz5lw1e2 ай бұрын

    Большое спасибо, очень помогаете делать лабы

  • @Kate-ne1xj
    @Kate-ne1xj3 жыл бұрын

    Очень классная заставка с котом в самом начале! Спасибо за видео😻

  • @programmcat

    @programmcat

    3 жыл бұрын

    💪

  • @OpenFrimeTVcom
    @OpenFrimeTVcom3 жыл бұрын

    спасибо. полезно)

  • @webgoal3287
    @webgoal32873 жыл бұрын

    Сделай плиз урок по QGraphicsScene. Я так понимаю он более удобный.. Твоя подача уроков очень классная

  • @programmcat

    @programmcat

    3 жыл бұрын

    будет в ближайшее время

  • @bulinchik1889
    @bulinchik18893 жыл бұрын

    Жду видос по qtcolor и работе с ним, думаю будет полезно

  • @user-mc7kc2bd8b
    @user-mc7kc2bd8b2 жыл бұрын

    Спасибо!

  • @forlinnetlinnet3674
    @forlinnetlinnet36742 жыл бұрын

    Здравствуйте ! Мне очень нравятся ваши видео и стиль подачи)) Сделайте пожалуйста выпуск про QserialPort, в интернете куча способов и они противоречат друг другу, думаю сообществу ардуинщиков это будет очень интересно. Спасибо за Ваш труд.

  • @programmcat

    @programmcat

    2 жыл бұрын

    Планирую делать ролики на эту тему в перспективе, сейчас вообще мало времени заниматься ютюбом ☹️

  • @alexishome4322

    @alexishome4322

    2 жыл бұрын

    Там есть пример с gui и терминалом, ничего не понятно но можно переделать для себя, ни одного чёткого гайда так и не нашел (((

  • @iiimahbl_3a_40_rpubeh3
    @iiimahbl_3a_40_rpubeh33 жыл бұрын

    Ваааааая, что он творит. Ат душы

  • @user-gx8sz7ht9k
    @user-gx8sz7ht9k2 жыл бұрын

    Огонь

  • @user-pk7tz9se4g
    @user-pk7tz9se4g2 жыл бұрын

    Пааааарень! Ты самый лучший!

  • @SKy1WaRRioR
    @SKy1WaRRioR3 жыл бұрын

    Красавчик. После попыток в инете нарисовать прямоугольник... я намучился, ничего не рисовало. Здесь просто как в сказке - я в шоке. Есть же четкие человеки. Хочешь быть моим папой? :-)

  • @GrigoryRomanov
    @GrigoryRomanov2 жыл бұрын

    2:21 проржался)))

  • @Doukry
    @Doukry2 жыл бұрын

    Спасибо большое за уроки! Буду благодарен, если покажете как сделать что-нибудь серверно-клиентное)

  • @programmcat

    @programmcat

    2 жыл бұрын

    следующий ролик вам понравится, не пропустите

  • @yunushkin88
    @yunushkin883 жыл бұрын

    Спасибо за видео!!! А можно на вставленной картинке из ресурсов рисовать например текст как-то?

  • @user-ok5js2xh8g
    @user-ok5js2xh8g2 жыл бұрын

    Вопрос на тему "Но если вы создаете проект, где отрисовка зависит от внешних событий, нажатия на кнопку ...вызовите её функцией repaint();". В видео рисование начинается сразу при запуске проекта. Мне нужно, чтобы рисование началось по нажатию кнопки, т.е. запустил программу - рисунка нет, нажал кнопку - рисунок появился. Подскажите что где нужно добавить?

  • @user-yp5ub9fv5j

    @user-yp5ub9fv5j

    Жыл бұрын

    Самый простой способ - сделать машину состояний(switch(state){case 0: nothing to do; case 1: paint triangle; case 2: paint poligon;.....}) в обработчике paintEvent().Функция будет вызываться всегда, когда нужна прориовка, однако реальные "картинки" будут зависеть от состояния, в каждом из них могут быть свои рисунки.Изменять переменную state можете в обработчике(слоте) кнопки.Разумеется,заводить глобальную переменную state моветон, поэтому лучше создать ее в заголовочном файле класса виджета, для которого Вы перегружаете функцию paintEvent()

  • @n1qro
    @n1qro Жыл бұрын

    2:28 Неверно. Отрицательные координаты ещё как могут быть, если точка находится выше окна, или левее.

  • @user-ev4mw7gn8q
    @user-ev4mw7gn8q Жыл бұрын

    Добрый день автор. Как можно сделать пунктирную линию двигующей, т.е. чтобы сами пунктиры двигались?

  • @user-mm5ln4qh5q
    @user-mm5ln4qh5q Жыл бұрын

    Мб микрофон надо поставить подальше, чтобы звук стал нормальным.

  • @mazdapenza3475
    @mazdapenza34753 жыл бұрын

    Как рисовать на каком нибудь виджете.. У меня ничего не получается. Плизз объясни пожалуйста.

  • @programmcat

    @programmcat

    3 жыл бұрын

    не понял вопрос, в ролике было рисование на виджете

  • @user-sp1gr6xb7q
    @user-sp1gr6xb7q2 жыл бұрын

    Добрый день. Я люблю рисовать в html canvas и пытаюсь рисовать в qpixmap, но линии выглядят ужасно пиксельно, подскажите как это исправить если это возможно

  • @programmcat

    @programmcat

    2 жыл бұрын

    так в ролике же говорится об этом )) painter.setRenderHint(QPainter::Antialiasing);

  • @vukavuka7519
    @vukavuka75193 жыл бұрын

    moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::paintEvent(QPaintEvent*)' Что это такое? Делаю всё по видео.

  • @programmcat

    @programmcat

    3 жыл бұрын

    Обычно такая ошибка возникает, если у вас функция объявлена в хедере, но не реализована в cpp. Чтобы найти причину ошибки в вашем конкретном случае, нужно взглянуть на ваш код

  • @vukavuka7519

    @vukavuka7519

    3 жыл бұрын

    @@programmcat да, это так. Тогда работает, но почему у меня вообще QPainter не выделяется никакими цветом + void MainWindow:: paintEvent(QPaintEvent *) тоже курсивом не выделяется. Как будто QT не распознает QPainter. Очень странно.

  • @_MaiT
    @_MaiT3 ай бұрын

    Надеюсь тут кто то еще живет и ответит на мой коммент. Я делаю шахматы на c++ используя qt и vscode. Я пытаюсь второй день сделать так чтобы у меня отрисовывалась доска и поверх нее были фигуры в .png формата. Доску отрисовал через QGraphicsRectItem, которые добавлял в QGraphicsScene, который добавил в QGraphicsView. А вот с добавлением фигур проблема. Я не нашел способа как это сделать. Помогите пожалуйста. Долблюсь как-будто в непробиваемую стену

  • @user-oq3ij9zn6f

    @user-oq3ij9zn6f

    5 күн бұрын

    попробуй qml

  • @winsoartic2942
    @winsoartic29422 жыл бұрын

    А как этот QPaintEvent вызывать допустим по нажатию кнопки?

  • @programmcat

    @programmcat

    2 жыл бұрын

    Проявить смекалку

  • @user-mm5ln4qh5q
    @user-mm5ln4qh5q2 жыл бұрын

    Спасибо за гайд, но звук ужасный (голос поступает только в левый динамик + скачет постоянно)

  • @SKy1WaRRioR
    @SKy1WaRRioR3 жыл бұрын

    Поставил painter.draw... в цикл - рисовать перестало почему-то... если отдельными операторами много раз подряд - то рисует. В цикле то же самое не хочет почему-то. Цикл двойной - цикл в цикле. Во внутренний не заходит. Убрал его. Один цикл отработал. Вывел прямоугольники. А теперь нужно каждый из них вывести несколько раз - а вот это не хочет делать. Дааа, чувствую куда-то я не в ту профессию лезу, че за нафиг :-) от чорт, типы перепутал - инт и дабл - из-за этого число итераций в ноль превращалось. Какой ужас, с++ - это ужас...

  • @programmcat

    @programmcat

    2 жыл бұрын

    С++ не прощает ошибок! :-D

  • @webgoal3287
    @webgoal32873 жыл бұрын

    Никак не могу научиться рисовать на виджете.. Пусто получается

  • @programmcat

    @programmcat

    3 жыл бұрын

    нужно код смотреть, что-то забыли скорее всего

  • @webgoal3287

    @webgoal3287

    3 жыл бұрын

    @@programmcat Я создал новый виджет с рисованием. А в основной поставил виджет и переопределил его на новый созданный. И все заработал..

  • @user-zf2ih8qj6b
    @user-zf2ih8qj6b2 жыл бұрын

    Отключи дискотеку! диз!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Келесі