Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Суть: мы можем использовать только одно OpenGL-окноОни об этом частенько писали, но вроде как можно использоваться несколько OGL-виджетов в одном окне, я не копал эту тему, просто как-то раз задал вопрос и даже сам автор порта Qt не смог чётко ответить. Сыро, что уж тут.
Тогда такой вопрос: а что, если я буду распространять статически слинкованное приложение без obj-файлов и одновременно с этим предоставлять возможность скачать эти obj-файлы или скачать это же приложение, но слинкованное динамически, так прокатит? :)))
Qt достаточно часто обновляется, что, с одной стороны, хорошо, но, с другой стороны, порой делает разработку ночным кошмаром. Происходит это потому, что новые версии не имеют совместимости со своими предшественниками, часть функционала которых в лучшем случае устаревает, в худшем — становится более недоступной.
Изначально делал приложение таким образом, чтобы для каждого окна был свой класс с привязанным к нему интерфейсом (использующим QML-файл). Когда мы открываем новое окно — создаётся экземпляр соответствующего класса, это окно отображается сверху, старое никуда не исчезает. Когда закрываем текущее окно, экземпляр класса удаляется, а предыдущее окно становится вновь видимым.
Button {
width: mainWindow.width / 2.5
height: mainWindow.height / 10
x: 0
y: mainWindow.height — height
}
font.pixelSize: (mainWindow.width>mainWindow.height)? parent.height/1.75: parent.height / 2.5
style: ButtonStyle {
background: ButtonBackground {}
label: ButtonLabel { text: «Тест» }
}
class Backend: public QQuickItem
mainWindow = engine.rootObjects().value(0);
lvList = mainWindow->findChild<QObject*>(«lvList»);
btnRequest = mainWindow->findChild<QObject*>(«btnRequest»);
Это наверно один из худших вариантов, как можно работать с кумлем
не надо так делать, пожалуйста. Вы сейчас убили очень много котят этими строками. Есть же анкоры.
не стоит ради такой мелочи городить external reference
Конечно, зачем нам text у самой кнопки, к чему бы он нам
Ни к чему, можно просто QObject. Тем более что все равно он идет как контекстное свойство, даже не как кумльный элемент
это не просто зло, это зло в квадрате. Вся логика работы с UI должна быть в кумле
как следует поступить лучше в данном случае?
Опять-таки, видеть подпись у label логичней, имхо. Если так критично расположение одной строчки с text, аргументируйте, пожалуйста
Можно, опять-таки, не вижу здесь критичности.
Всю логику UI порой в принципе невозможно перенести в QML. В зависимости от работы в бэкенде, может и меняться UI.
Подобное решение использовал, т.к. изначально хотел использовать знакомые по разработке в Android идиомы, там же в самой вёрстке логика не прописывается, верно (если не создавать кастомные классы для UI).
Очень даже возможно. Обычно делается через кучу сигналов в бекенде, а в кумле эти сигналы слушаются и делаются нужные вещи. Только сигналы конечно не вида paintButtonInColor(), а вида someActionAllowed() и кумль уже сам там разбирается что ему надо сделать при этом. В идеале бекенд не должен знать вообще ничего о том, как устроен UI, иначе можно однажды упереться в абсолютную неподдерживаемость такого кода (когда там будут сотни зависимостей между бекендом и фронтендом и даже небольшое изменение фронтенда приведет к куче багов).
Qt 5.3: низкий старт в мобильной кроссплатформе