Шаг 205.
Библиотека Qt.
Запись команд рисования

    На этом шаге рассмотрим запись команд рисования.

    Класс QPicture — это контекст рисования, который предоставляет возможность протоколирования команд класса QPainter. С его помощью команды можно даже записывать в отдельные файлы (называемые метафайлами), а потом загружать их снова, чтобы повторить ранее проделанные действия. Эти действия можно перенаправлять и на другие контексты рисования, например принтер или экран. Ниже представлена запись одной команды рисования в файл myline.dat.

QPicture pic;
QPainter painter;
painter.begin(&pic);
painter.drawLine(20, 20, 50, 50);
painter.end();
if (!pic.save("myline.dat"))
{
    qDebug() << "Не могу сохранить файл";
}

    Следующий код демонстрирует загрузку команд из файла и их исполнение в другом контексте. Для отображения в другом контексте используется метод drawPicture(). Первый параметр этого метода устанавливает позицию, с которой начнется рисование, а во втором параметре передается объект класса QPicture.

QPicture pic;
if (!pic.load("myline.dat"))
{
    qDebug() << "Не могу загрузить файл";
}
QPainter painter;
painter.begin(this)
painter.drawPicture(QPoint(0, 0), pic);
painter.end()

    Файлы приложения можно взять здесь.

    На следующем шаге рассмотрим перемещение изображения на экране.




Предыдущий шаг Содержание Следующий шаг