Вопрос: Какой самый адекватный способ въехать в Qt? И чтобы

был баланс между скоростью и качеством.

Боль: Геморойно, конечно, без сноровки и навыка клепать интерфейсы.

Не могу добавить QWidget в QWidget, и из доки непонятно, почему. Хотя могу родительскому QWidget назначить layout, и layout уже имеет метод addWidget.

Могу создать лейаут через QVBoxLayout *vBox = new QVBoxLayout(this), а через QLayout не могу. И сиди раскуривай примеры, которые еще написаны по-разному.

38 ответов

11 просмотров

я въехал просто делая по доке

пример кода кидай, в чем трудность

AI-Sch. Автор вопроса
AI Sch.
Ты про examples в ide’шке?

Ну ты пишешь, что ты не можешь добавить какой-то виджет. Кидай конкретный пример кода, который ты ждешь, что будет работать, а не работает

AI-Sch. Автор вопроса
Skarn
ошибся, кидай*

А, понял. Ну тут код максимально тривиальный. Наверно скрином будет даже ценнее.

AI Sch.
screenshot А, понял. Ну тут код максимально тривиальный. Наве...

Когда создаешь лейаут, переданный аргумент на родителя, автоматически делает setLayout в родителя

Я въезжал по урокам Ravesli, дальше когда их все написал, что-то свое сам садился делать

AI Sch.
screenshot А, понял. Ну тут код максимально тривиальный. Наве...

Первый виджет без парента - потенциальный мемори лик

На начальном этапе баланс невозможен, либо медленно но качественно, либо быстро, но некачественно. Причем первый вариант таки со временем приведёт к желаемому балансу, а второй к увольнению

Sergey eSKon
На начальном этапе баланс невозможен, либо медленн...

Что такого надо не так понять в Qt, чтобы уволили?)

Angry Subst
НАСЛЕДОВАНИЕ и Сигнал-Слот :)

А что можно сделать не так с ними?

Skarn
А что можно сделать не так с ними?

не понять.. механизма сигнал-слот и не понять иерархию классов, на которой все сидит как на трех китах и если чего то нет, кьют дает возможность наривовать 4-го кита

Angry Subst
не понять.. механизма сигнал-слот и не понять иера...

Так если ты не понял, ты этим и не воспользуешься

Skarn
А что можно сделать не так с ними?

Тоже что и с любыми плюсовыми приложениями. Испоганить архитектуру, наплодить утечек, построить велосипед на костылях на который потом больно смотреть и еще больнее в нем ковыряться и допиливать фичи...

Skarn
На Qt потечь крайне сложно

элементарно... чес слово

Skarn
На Qt потечь крайне сложно

Та легко, опять таки в примере выше, не соблюдать parent-child. Да и банально создать указатель не удалив его потом.

Angry Subst
тогда зачем тебе кьют?

Я к тому что в Qt либо ты понял, либо не понял, как мне кажется. В крестах в целом можно понять не так, писать валидный код с т. з. стандарта, но вырвиглазный для других разработчиков

TheDoctor
Та легко, опять таки в примере выше, не соблюдать ...

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

Angry Subst
object *a=func(); func() { object *o=new object...

Так тут нет парентинга. Это вообще какой-то странный враппер над new

Skarn
Если ты создаешь указатель с парентингом, Qt чисти...

Не обязательно все будет написано на pure Qt. Стоит не забывать что Qt это фреймворк. Да с весьма обширным функционалом, но так или иначе - фреймворк. У нас остается голый язык, плюсы, к которому можно добросить сторонних либ, а то и вовсе других фреймворков. Даже тут в чате не раз советовали использовать функции из буста, как пример.

Skarn
Что такого надо не так понять в Qt, чтобы уволили?...

в реальных проектах много чего встречается. Из последнего например отработка deepurl. По документации QDesktopServices::setUrlHandler должен всё отрабатывать, и на айос отрабатывает, а на андроиде нет. Решилось после двух дней глубокой отладки самого кьюта, выяснения, что в андроиде этот момент просто не реализован, поиск наиболее оптимального варианта самостоятельного решения, реализация. И такое вылазит постоянно

TheDoctor
Не обязательно все будет написано на pure Qt. Стои...

Да я бывает юзаю stl решения в перемешку с Qt. Но на самом деле я рассматриваю Qt как омни фреймворк, на котором можно спокойно писать, даже не зная дебрей стандартной либы.

Sergey eSKon
в реальных проектах много чего встречается. Из пос...

Блин, у меня сейчас так. На линуксе погано ведут себя вызовы к processEvents()

Sergey eSKon
в реальных проектах много чего встречается. Из пос...

дело ведь не только в кьюте. Любая задача решается сотней способов и начинающий если гонится за скоростью выбирает далеко не лучшие способы зачастую.

Skarn
На Qt потечь крайне сложно

В qt много подводных камней в виде багов, неочевидного поведения, часто приходится не один час в сурсах провести за разбором почему что-то не работает

Skarn
Это я знаю, баги сам неоднократно встречал.

и не только баги. Нюансы работы компонентов тоже требуют времени на изучение

AI-Sch. Автор вопроса
Sergey eSKon
и не только баги. Нюансы работы компонентов тоже т...

Так какой пайплайн изучения предлагаете?

AI Sch.
Так какой пайплайн изучения предлагаете?

для каждой сложной задачи искать разные варианты решения, не останавливаться на первом найденном, попытаться найти лучший, пытаться понять почему он лучше, чем другой, пытаться смотреть вглубь, изучать исходники самого кьюта для понимания как оно внутри работает. Это медленно, но это единственно правильный вариант

Sergey eSKon
для каждой сложной задачи искать разные варианты р...

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

Skarn
Так тут нет парентинга. Это вообще какой-то странн...

я просто показал, как можно словить утечку... есть парент или нет кьют вообще при закрытии программы все подчистит но типитная ситуевина для плюсов, объект создали в ф-ии, указатаель передали наружу, наруже словили, что-то поделали и забыли грохнуть

Angry Subst
я просто показал, как можно словить утечку... есть...

Это архитектуры всратые. И вообще есть std::unique_ptr

Похожие вопросы

Обсуждают сегодня

Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
с помощью чего можно бота добавить как админа в чат? (условно в боте есть кнопка, нажатие на которую приводит тебя к выбору чата и выдаче прав боту)
ηє νєямσяє
5
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
Добрый день, подскажите как правильно сделать filter в backend-e. Есть модель (товар) у который связь belongsToMany (компания), компаний > 4k, поэтому выборку типа ->all(); н...
Max Dubovsky
7
А цены чем оправданы?
Lencore
7
напомните, как заменить placeholder , а не добавить содержимое ?
Artem N
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Карта сайта