crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как присвоить значение двухмерного массива объекту Qpixmap
Введите ваше имя
Подтвердите код

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

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 15.1.2013, 20:03
  zuze, ты бы демонстрации приклеивал, сложно твои объяснения вот так воспринимать под ночь ))

попробуй копировать методами

bool loadFromData ( const uchar * data, uint len, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
bool loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
zuze Дата 15.1.2013, 15:20
  Задачу решил. Но проблему мою это не сняло.

Сделал так

QPixmap l::DrawOnPixmap()
{
    QPixmap pixmap(720, 492);
    QPainter Tochka(&pixmap);
    for (int j = 0; j < 720; j++)
    {
        for (int i = 0; i < 492; i++)
        {
            Tochka.setPen(QColor(buffer[i][j], buffer[i][j], buffer[i][j], 127)); // Задание цвета
            Tochka.drawPoint(j, 492-i);    // Рисуем точку
        }
    }
   return pixmap;
}


Я смог избавиться от циклов в paintEvent(), но к сожалению таймер линии всё равно медленно, работает. Как-то странно когда работает только таймер линии, то он работает прекрасно. Если я запускаю меняющиеся картинки используя второй таймер, то таймер линии медленнее работает.

Почему может такое происходить ещё?
zuze Дата 15.1.2013, 12:49
  Я рисую картинку в paintEvent() с помощью двух циклов (циклы большие), после этого выводится линия которая передвигается на определённое расстояние.
Но при выводе этой картинки из двух циклов, скорость передвижения линии падает, а если не выводить картинку, то линия выводится и передвигается как обычно.
Как я понял из-за того, что paintEvent() выполняется многократно у меня замедляется передвижение линии.
Как я понял надо значения двухмерного массива записать в объект Qpixmap и потом вывести в paintEvent() не используя циклы с помощью drawPixmap().
Ксожалению запись двухмерного массива записать в объект Qpixmap я не нашёл в сети примера. Все примеры только чтобы вывести бинарный файл.
Я не могу передавать файл, так как в двухмерном массиве храниться информация из разных файлов. А результирующий файл создавать нельзя.

Скажите пожалуйста, как запись двухмерного массива записать в объект Qpixmap?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.6.2024, 0:18