Спасибо за урок, подскажите пожалуйста, откуда у ui появляется verticalLayout, если его перед этим не добавить на сам Widget? Если же добавить verticalLayout, то сама форма меняет размеры, а картинка статична (отступы меняются).
Как всегда, хороший видеоурок. Надеюсь, не против конструктивной критики? Тогда поехали! Примерно в 8:40 Вы предлагаете "приконнектить" marginChanged и repaint. Это не круто, ведь коннект - далеко не самая простая реализация такого простого действия (пусть на примере такой лёгкой программы это не заметно, но вообще-то коннекты тяжелые и снижают производительность программы, лучше использовать их только там, где это необходимо). Можно ведь в конец метода setMargin добавить строчку repaint(); и всё будет ОК. То же самое для setPixmap. Далее, зачем задавать в заголовочном файле и инициализировать в конструкторе текст пустого изображения? Лучше вписать его в кавычках прямо в вызов функции drawText()... На 16:20 зачем выделять память под хранение imageRect, когда rect() можно вписать сразу в drawPixmap? Ну и еще есть пару мелких моментов, которые порезали мне глаз, но они слишком мелочные, чтобы их подробно разбирать)
1) Принимаю замечание. Действительно необходимости в соединении сигнал-слот в данном случае нет (разве только для наглядности взаимосвязей внутри класса). Для любопытства заглянул в исходные коды библиотечных классов: внутренние связи такого рода там встречаются, хотя далеко не всюду. В документации Qt пишут примерно так: да, соединение сигнал-слот в 10 раз медленнее прямого вызова, но в реальном приложении эта разница практически незаметна, поскольку теряется на фоне затратных операций типа new и delete (которые постоянно происходят за кулисами операций со строками, векторами и т.д.). 2) Дело в том, что в следующем видео я дорабатываю класс виджета и текст пустого изображения становится настраиваемым. Но, конечно, в отрыве от второго видео это выглядит переусложнением. 3) Полностью принимаю. В действительности, сразу после записи видео я понял, что делал лишнюю операцию. Большое спасибо за замечания. В целом я абсолютно не претендую на звание гуру C++ и Qt или на оптимальность кода в примерах. Цель уроков - взять типичную задачу или библиотечный класс и наглядно показать, как заставить это все в принципе работать.
Лев Алексеевский Остаётся только пожелать Вам творческих успехов!) Кстати, я начинал учиться Qt именно по Вашим видео. И пользуясь случаем, спрошу, планируются ли уроки по использованию OpenGL?
очень сложно, непонятно зачем приват и паблик делать, когда один раз по логике нужно обьявить. Как передать значение c lineedit в обработку и сделать простенькое вычисление с выводом. Нигде в рунете не пишут, только умом хвастают. люди пишут по разному код, голова кругом, но как я начинаю писать, так все не правильно и все не то, руки опускаются.
Спасибо за урок, подскажите пожалуйста, откуда у ui появляется verticalLayout, если его перед этим не добавить на сам Widget? Если же добавить verticalLayout, то сама форма меняет размеры, а картинка статична (отступы меняются).
Присоединяюсь к вопросу. За два года ответа нет.
@@dmitrybgm при создании ui необходимо нажать на поле(не на слайдер) и выбрать "скопановать по вертикали"
Спасибо!) Как раз кстати))
Зачем пользовательский класс называть "Q...."? Маскировка под встроенный класс?
Как всегда, хороший видеоурок. Надеюсь, не против конструктивной критики? Тогда поехали!
Примерно в 8:40 Вы предлагаете "приконнектить" marginChanged и repaint. Это не круто, ведь коннект - далеко не самая простая реализация такого простого действия (пусть на примере такой лёгкой программы это не заметно, но вообще-то коннекты тяжелые и снижают производительность программы, лучше использовать их только там, где это необходимо). Можно ведь в конец метода setMargin добавить строчку repaint(); и всё будет ОК. То же самое для setPixmap.
Далее, зачем задавать в заголовочном файле и инициализировать в конструкторе текст пустого изображения? Лучше вписать его в кавычках прямо в вызов функции drawText()...
На 16:20 зачем выделять память под хранение imageRect, когда rect() можно вписать сразу в drawPixmap?
Ну и еще есть пару мелких моментов, которые порезали мне глаз, но они слишком мелочные, чтобы их подробно разбирать)
1) Принимаю замечание. Действительно необходимости в соединении сигнал-слот в данном случае нет (разве только для наглядности взаимосвязей внутри класса). Для любопытства заглянул в исходные коды библиотечных классов: внутренние связи такого рода там встречаются, хотя далеко не всюду. В документации Qt пишут примерно так: да, соединение сигнал-слот в 10 раз медленнее прямого вызова, но в реальном приложении эта разница практически незаметна, поскольку теряется на фоне затратных операций типа new и delete (которые постоянно происходят за кулисами операций со строками, векторами и т.д.).
2) Дело в том, что в следующем видео я дорабатываю класс виджета и текст пустого изображения становится настраиваемым. Но, конечно, в отрыве от второго видео это выглядит переусложнением.
3) Полностью принимаю. В действительности, сразу после записи видео я понял, что делал лишнюю операцию.
Большое спасибо за замечания. В целом я абсолютно не претендую на звание гуру C++ и Qt или на оптимальность кода в примерах. Цель уроков - взять типичную задачу или библиотечный класс и наглядно показать, как заставить это все в принципе работать.
Лев Алексеевский Остаётся только пожелать Вам творческих успехов!) Кстати, я начинал учиться Qt именно по Вашим видео. И пользуясь случаем, спрошу, планируются ли уроки по использованию OpenGL?
Артём Тютюнник
Спасибо за добрые слова. Уроки по OpenGL пока точно не планируются - уж очень далек я от этой области. Хотя никогда не говори никогда )
И где код??
очень сложно, непонятно зачем приват и паблик делать, когда один раз по логике нужно обьявить. Как передать значение c lineedit в обработку и сделать простенькое вычисление с выводом. Нигде в рунете не пишут, только умом хвастают. люди пишут по разному код, голова кругом, но как я начинаю писать, так все не правильно и все не то, руки опускаются.