Russian Qt Forum
Мая 16, 2025, 22:52
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Печать
>
странно ведет себя setPageMargins
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: странно ведет себя setPageMargins (Прочитано 7960 раз)
mokynis
Самовар
Offline
Сообщений: 176
странно ведет себя setPageMargins
«
:
Декабря 08, 2023, 15:42 »
пытаюсь выяснить, какой размер таблицы будет удобней. Элементарный html:
Код:
<html>
<head>
<meta http-equiv='content-type' content='text/html; charset=utf-8'>
<meta http-equiv='content-style-type' content='text/css'>
</head>
<body>
<table border=1 cellspacing=0 cellpadding=0>
<tr>
<th width=800>1</th>
<th width=200>2</th>
</tr>
</table>
</body>
</html>
Распечатываю:
Код:
QPrinter *printer=new QPrinter();
printer->setOrientation(QPrinter::Landscape);
printer->setPageSize(QPageSize(QPageSize::A4));
printer->setPageMargins(QMarginsF(5,5,5,5),QPageLayout::Millimeter);
this->docum=new QTextDocument();
this->docum->setHtml(strHtml);
Менял отступы пол дня, все равно левое и верхнее поля не уменьшаются. QT5.3.2. В QT4 все работало. Что я не так делаю?
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
mokynis
Самовар
Offline
Сообщений: 176
Re: странно ведет себя setPageMargins
«
Ответ #1 :
Декабря 09, 2023, 14:45 »
ладно, бес с ним, с setPageMargins. Может, есть способ как-то распечатать таблицу, чтобы она заняла лист по-максимуму? Имеется стандартный бланк, цель программы-не заполнять его каждый раз руками, а брать данные из базы и выводить в бланке нужное. При существующей проблеме вся программа летит коту под хвост
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: странно ведет себя setPageMargins
«
Ответ #2 :
Декабря 09, 2023, 16:53 »
QPrinter::setFullPage не помогает?
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
mokynis
Самовар
Offline
Сообщений: 176
Re: странно ведет себя setPageMargins
«
Ответ #3 :
Декабря 09, 2023, 22:23 »
нет, не помогает
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: странно ведет себя setPageMargins
«
Ответ #4 :
Декабря 10, 2023, 11:31 »
Видимо, это застарелая проблема (QTBUG-32987):
https://stackoverflow.com/questions/37964891/qprinter-margin-does-not-work-as-expected
.
Предлагается бороться с отступом в QTextDocument путем установки размера страницы. Я попробовал и QPageLayout::setMargins, и
Код
C++ (Qt)
docum
->
setPageSize
(
QSizeF
(
printer
->
pageLayout
(
)
.
pageSize
(
)
.
size
(
QPageSize
::
Point
)
)
)
,
но ничего хорошего не получил. Правда, setPageSize на отступы все же как-то влияет, но не так, как хочется.
Попробуйте поискать в этом направлении.
«
Последнее редактирование: Декабря 10, 2023, 11:37 от sergek
»
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
mokynis
Самовар
Offline
Сообщений: 176
Re: странно ведет себя setPageMargins
«
Ответ #5 :
Декабря 10, 2023, 17:00 »
спасибо за усилия.
У меня Ваш вариант открыло почти как надо, в моем случае (таблица с текстом) таблица растягивается по размеру листа, но вместе с ней растягивается и текст (я так понимаю программа просто растягивает таблицу, как рисунок, искажая ее, лишь бы впихнуть в требуемые границы). Буду сохранять в виде .html, а потом открывать в Excel-он хорошо читает таблицы из .html. Проблема в том, что работаю в Linux, а Excel на виртуалке. Неудобно будет работать
Записан
QT4, Qt5, Qt6 Debian, ArchLinux
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...