Russian Qt Forum
Сентябрь 21, 2024, 12:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Печать контента в мм ед. изм.  (Прочитано 5711 раз)
Sahab
Гость
« : Май 16, 2010, 23:54 »

Как нарисовать допустим окружность нужного радиуса в мм.
Нарисовать и просмотреть с пом. QPrintPreviewWidget

thx to ALL;
Записан
BaltikS
Гость
« Ответ #1 : Май 23, 2010, 12:08 »

1) создать слот и соединить с сигналом paintRequested ( QPrinter * printer )
2) работать с классом QPrinter & QPainter, который передаётся в качестве параметра...особо обратить внимание на enum QPrinter::Unit
Записан
Sahab
Гость
« Ответ #2 : Июнь 13, 2010, 23:50 »

ниочем... с paintRequest и так работаю... Unit мне никаким боком не поможет
Записан
Barmaglodd
Гость
« Ответ #3 : Июнь 14, 2010, 07:51 »

Код:
    //! Получим номер пикселя по горизонтали, соотвествующий заданному расстоянию в мм
    int painterX(QPainter& painter, qreal Xmm)
    {
        return (painter.paintEngine()->paintDevice()->logicalDpiX()*Xmm)/25.4;
    }

    //! Получим номер пикселя по вертикали, соотвествующий заданному расстоянию в мм
    int painterY(QPainter& painter, qreal Ymm)
    {
        return (painter.paintEngine()->paintDevice()->logicalDpiY()*Ymm)/25.4;
    }
Записан
Sahab
Гость
« Ответ #4 : Июнь 14, 2010, 09:03 »

painter.paintEngine()->paintDevice()->logicalDpiX()
мне хватает:
Код:
printer->logicalDpiX()*Xmm / 25.4;

НО... картинка немного смещена...
причем перед этим делал    
Код:
printer->setFullPage(true);
Записан
Sahab
Гость
« Ответ #5 : Июль 05, 2010, 02:14 »

Код:
printer->setFullPage(true);
опытным путем выяснил что баг именно в ней
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.04 секунд. Запросов: 20.