Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дополнительные материалы.pdf
Скачиваний:
3
Добавлен:
07.06.2025
Размер:
12.29 Mб
Скачать

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

ОБРАБОТКА СИГНАЛОВ

signalName в signalOwner

В signalOwner onSignalName: …

В произвольном месте

Connections {

target: signalOwner onSignalName: …

}

»enabled : bool — принимать события или нет

»ignoreUnknownSignals : bool — игнорировать подключения к несуществующим сигналам

doc.qt.io/qt-5/qml-qtqml-connections.html

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

CANVAS — ДВУМЕРНАЯ ГРАФИКА

context : Context2D — контекст для рисования

»doc.qt.io/qt-5.6/qml-qtquick-context2d.html

»Описание стандарта www.w3.org/TR/2dcontext/

»Документация

https://developer.mozilla.org/ru/docs/Web/API/CanvasRenderingContext2D

getContext(contextId, … args) : Context2D — получить контекст

markDirty(rect area) , requestPaint() — запросить перерисовку

paint(rect region) — сигнал: область нуждается в перерисовке

painted() — сигнал, что отрисовка выполнена

bool save(string filename) — сохранить рисунок в файл

doc.qt.io/qt-5.6/qml-qtquick-canvas.html

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

ПРОСТОЙ ПРИМЕР РИСОВАНИЯ НА CANVAS

Canvas { id: root

width: 300; height: 300 onPaint: {

var ctx = getContext("2d") ctx.lineWidth = 10 ctx.strokeStyle = "red" ctx.fillStyle = "blue" ctx.beginPath() ctx.moveTo(20,20) ctx.lineTo(220,20) ctx.lineTo(220,220) ctx.lineTo(20,220) ctx.closePath()

ctx.fill() ctx.stroke()

}

}

РАЗРАБОТКА НА QT ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ

MOUSEAREA — ОБРАБОТКА НАЖАТИЙ

mouseX, mouseY : real — координаты курсора

pressed : bool — было ли нажатие

clicked(MouseEvent mouse) — сигнал для щелчка

pressed(MouseEvent mouse) — сигнал для нажатия

pressAndHold(MouseEvent mouse) — сигнал для нажатия дольше чем 800ms

released(MouseEvent mouse) — сигнал, что кнопка отпущена

MouseEvent

x, y : int — координаты курсора

wasHeld : bool — долгое ли нажатие

doc.qt.io/qt-5.6/qml-qtquick-mousearea.html