crossplatform.ru

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

> [РЕШЕНО] Отрисовка QPainter'ом на QPixmap'e
Andrewshkovskii
  опции профиля:
сообщение 7.12.2009, 17:19
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Хочу нарисовать сеточку на пиксмапе, вот такой вот код :

    ui->setupUi(this);
    //создаем объекты
    etalonSymbolPixmap = new QPixmap(ui->etalonSymbol->size());
    etalonPixelsNetPixmap = new QPixmap(ui->etalonPixelsNet->size());
    inputSymbolPixmap = new QPixmap(ui->inputSymbolFiled->size());
    inputPixelsNetPixmap = new QPixmap(ui->inputSymbolPixelsNet->size());
    painter = new QPainter();
    //заливаем их белым цветом.
    this->clearPixmaps();//для всех пиксмапов вызывается fill()
    //вставляем их в интерфейс..
    ui->etalonSymbol->setPixmap(*etalonSymbolPixmap);
    ui->etalonPixelsNet->setPixmap(*etalonPixelsNetPixmap);
    ui->inputSymbolFiled->setPixmap(*inputSymbolPixmap);
    ui->inputSymbolPixelsNet->setPixmap(*inputPixelsNetPixmap);
    QPainter painter(etalonPixelsNetPixmap);
    painter.setBrush(*(new QBrush(Qt::white,Qt::CrossPattern)));
    painter.drawRect(etalonPixelsNetPixmap->rect());//пытаемся нарисовать сетку..
    this->setFixedSize(865,502);

Ну и получается ровно ничего. какой-то косят с утсновкой PaintDevice в конструкторе painter'а ?

Сообщение отредактировал Andrewshkovskii - 7.12.2009, 18:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Andrewshkovskii
  опции профиля:
сообщение 7.12.2009, 18:17
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 351
Регистрация: 27.12.2008
Пользователь №: 467

Спасибо сказали: 18 раз(а)




Репутация:   1  


Спасибо.. решено вот так :

recognizer::recognizer(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::recognizer)
{
    ui->setupUi(this);
    //создаем объекты
    etalonSymbolPixmap = new QPixmap(ui->etalonSymbol->size());
    etalonPixelsNetPixmap = new QPixmap(ui->etalonPixelsNet->size());
    inputSymbolPixmap = new QPixmap(ui->inputSymbolFiled->size());
    inputPixelsNetPixmap = new QPixmap(ui->inputSymbolPixelsNet->size());
    //заливаем их белым цветом.
    this->clearPixmaps();
    //вставляем их в интерфейс..
    ui->etalonSymbol->setPixmap(*etalonSymbolPixmap);
    ui->etalonPixelsNet->setPixmap(*etalonPixelsNetPixmap);
    ui->inputSymbolFiled->setPixmap(*inputSymbolPixmap);
    ui->inputSymbolPixelsNet->setPixmap(*inputPixelsNetPixmap);
    this->setFixedSize(865,502);
}
void recognizer::clearPixmaps()
{
    inputSymbolPixmap->fill();
    etalonSymbolPixmap->fill();
    etalonPixelsNetPixmap->fill();
    inputPixelsNetPixmap->fill();
    QPainter p(etalonPixelsNetPixmap);
    p.fillRect(etalonPixelsNetPixmap->rect(),QBrush(Qt::CrossPattern));
    p.end();
    p.begin(inputPixelsNetPixmap);
    p.fillRect(inputPixelsNetPixmap->rect(),QBrush(Qt::CrossPattern));
    p.end();
}

}

Размеру жестко заданы в ui-шке..

Сообщение отредактировал Andrewshkovskii - 7.12.2009, 18:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 13:17