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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Какие еденицы измерения в QTextDocument::pageSize  (Прочитано 5290 раз)
Hort
Гость
« : Ноябрь 30, 2008, 18:08 »

Хочу сделать чтобы при печати контент из QTextDocument мог изменять свой маштаб.
Код
C++ (Qt)
QTextDocument printDoc;
QSizeF ps = printer->pageRect(QPrinter::Point).size();
printDoc.setPageSize(ps);
printDoc.setHtml(mainHtml);
 
printDoc.print(printer);
т.е. хочу получить размер страницы принтера, растянуть или уменьшить на некое кол-во % и вставить в setPageSize() документа.
только не могу понять в чем в QTextDocument::pageSize измеряется размер страницы.
или может есть более простой способ, а я тут изобретаю велосипед
Записан
Hort
Гость
« Ответ #1 : Ноябрь 30, 2008, 19:48 »

Код
C++ (Qt)
QSizeF ps = printer->paperRect(QPrinter::Inch).size();
ps.rwidth()=ps.width()*96;
ps.rheight()=ps.height()*96;
printDoc.setPageSize(ps);
Опытным путем удалось определить что это размер в пикселях.
Предыдущий пример не работал нормально т.к. QPrinter::Point (в документации написано) определен как 1/72 от дюйма, а у меня маштаб на мониторе - 96 пикселей на дюйм. теперь вопрос - как определить текущий маштаб монитора? ведь у других могут быть теже 72 пикселя на дюйм.
« Последнее редактирование: Ноябрь 30, 2008, 19:49 от Hort » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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