Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Как сделать простой аналог canvas на Си ?


Автор: macdack 7.6.2015, 10:26
Как наиболее просто и кросплатформенно для десктопов и может быть для мобильных осей сделать аналог холста жаваскрипта ?

Холст нужен простейший - всего две функции:
1) выводить массив пикселов плавно без задержек 60 раз в сек
2) отслеживать клик/тач событие с передачей координат точки/точек нажатия




Автор: ss 9.6.2015, 14:59
а чем тебе стандартный Qt Widget http://doc.qt.io/qt-5/qwidget.html#paintEvent
не нравится  или из qml  Canvas http://doc.qt.io/qt-5/qml-qtquick-context2d.html  ?

У widget есть унаследованный от QObject таймер и обработчик http://doc.qt.io/qt-5/qobject.html#timerEvent


qml работает с openGL, поэтому все будет быстро отрисовываться

Код


Canvas
        {
            id: screen
            width: 640
            height: 480
onPaint:
            {
                var ctx = screen.getContext("2d")
                ctx.save();
                ctx.clearRect(0, 0, mapSizeX, mapSizeY);

                ctx.beginPath();

         // тут рисуешь любые фигуры, в качестве примера эллипс
               ctx.ellipse(50,50,200,200)

               ctx.closePath();
                ctx.fill();
                ctx.restore();
               }
MouseArea
{ 
              anchors.fill: parent
              onClicked:
              {//обрабатывает нажатие, клики. Посылаем сигнал с координатами нажатия
                            signalClick(mouseX, mouseY)
              }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)