Тёмный

Qt - Создание пользовательских виджетов с нуля 

Qt by Lev Alekseevskiy
Подписаться 6 тыс.
Просмотров 25 тыс.
50% 1

В видео демонстрируется возможность создания пользовательских виджетов с нуля (то есть унаследованных напрямую от класса QWidget) на примере создания простого виджета для хранения и отображения картинок. Объясняется реализация отрисовки виджета и обработка событий пользовательского интерфейса.

Опубликовано:

 

20 мар 2015

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 12   
@samou4ka2
@samou4ka2 9 лет назад
Спасибо!) Как раз кстати))
@user-ur5kc8er8w
@user-ur5kc8er8w 5 лет назад
Зачем пользовательский класс называть "Q...."? Маскировка под встроенный класс?
@YoKy59
@YoKy59 9 лет назад
Как всегда, хороший видеоурок. Надеюсь, не против конструктивной критики? Тогда поехали! Примерно в 8:40 Вы предлагаете "приконнектить" marginChanged и repaint. Это не круто, ведь коннект - далеко не самая простая реализация такого простого действия (пусть на примере такой лёгкой программы это не заметно, но вообще-то коннекты тяжелые и снижают производительность программы, лучше использовать их только там, где это необходимо). Можно ведь в конец метода setMargin добавить строчку repaint(); и всё будет ОК. То же самое для setPixmap. Далее, зачем задавать в заголовочном файле и инициализировать в конструкторе текст пустого изображения? Лучше вписать его в кавычках прямо в вызов функции drawText()... На 16:20 зачем выделять память под хранение imageRect, когда rect() можно вписать сразу в drawPixmap? Ну и еще есть пару мелких моментов, которые порезали мне глаз, но они слишком мелочные, чтобы их подробно разбирать)
@Levolex
@Levolex 9 лет назад
1) Принимаю замечание. Действительно необходимости в соединении сигнал-слот в данном случае нет (разве только для наглядности взаимосвязей внутри класса). Для любопытства заглянул в исходные коды библиотечных классов: внутренние связи такого рода там встречаются, хотя далеко не всюду. В документации Qt пишут примерно так: да, соединение сигнал-слот в 10 раз медленнее прямого вызова, но в реальном приложении эта разница практически незаметна, поскольку теряется на фоне затратных операций типа new и delete (которые постоянно происходят за кулисами операций со строками, векторами и т.д.). 2) Дело в том, что в следующем видео я дорабатываю класс виджета и текст пустого изображения становится настраиваемым. Но, конечно, в отрыве от второго видео это выглядит переусложнением. 3) Полностью принимаю. В действительности, сразу после записи видео я понял, что делал лишнюю операцию. Большое спасибо за замечания. В целом я абсолютно не претендую на звание гуру C++ и Qt или на оптимальность кода в примерах. Цель уроков - взять типичную задачу или библиотечный класс и наглядно показать, как заставить это все в принципе работать.
@YoKy59
@YoKy59 9 лет назад
Лев Алексеевский Остаётся только пожелать Вам творческих успехов!) Кстати, я начинал учиться Qt именно по Вашим видео. И пользуясь случаем, спрошу, планируются ли уроки по использованию OpenGL?
@Levolex
@Levolex 9 лет назад
Артём Тютюнник Спасибо за добрые слова. Уроки по OpenGL пока точно не планируются - уж очень далек я от этой области. Хотя никогда не говори никогда )
@marydudnik9689
@marydudnik9689 7 лет назад
Спасибо за урок, подскажите пожалуйста, откуда у ui появляется verticalLayout, если его перед этим не добавить на сам Widget? Если же добавить verticalLayout, то сама форма меняет размеры, а картинка статична (отступы меняются).
@dmitrybgm
@dmitrybgm 5 лет назад
Присоединяюсь к вопросу. За два года ответа нет.
@user-qi9kk2ot7d
@user-qi9kk2ot7d 4 года назад
@@dmitrybgm при создании ui необходимо нажать на поле(не на слайдер) и выбрать "скопановать по вертикали"
@katerinamisik6141
@katerinamisik6141 4 года назад
И где код??
@ATTIKA17
@ATTIKA17 3 года назад
очень сложно, непонятно зачем приват и паблик делать, когда один раз по логике нужно обьявить. Как передать значение c lineedit в обработку и сделать простенькое вычисление с выводом. Нигде в рунете не пишут, только умом хвастают. люди пишут по разному код, голова кругом, но как я начинаю писать, так все не правильно и все не то, руки опускаются.
Далее
DrawRect FMX Delphi
6:54
Просмотров 37
Рисование в Qt Creator за 6 минут
6:45