Как конвертировать пиксели в миллиметры в Qt4.7? - PullRequest
1 голос
/ 30 ноября 2011

Я работаю в проекте, где я сохраняю чертеж в формате .eps.

Сам рисунок находится на виджете, мне нужно преобразовать размер виджета из пикселей в миллиметры, чтобы я могправильно установите размер выходного изображения.

Это код, который я использую:

int widthmm  = QApplication::desktop()->widthMM();
int heightmm = QApplication::desktop()->heightMM();
int widthpx  = QApplication::desktop()->width();
int heightpx = QApplication::desktop()->height();
QSize epsPictureSize;
epsPictureSize.setWidth((picture.width*widthmm)/widthpx);
epsPictureSize.setHeight((picture.height*heightmm)/heightpx);
epsPrinter.setPaperSize(epsPictureSize,QPrinter::Millimeter);

Проблема в том, что widthMM и heightMM не надежны и дают ложные результаты.

Мне нужно кроссплатформенное решение, чтобы правильно получить физические измерения.

1 Ответ

1 голос
/ 30 ноября 2011

Эти функции запрашивают систему управления окнами, которая обычно сама не уверена.Если вы просто хотите симпатичный графический интерфейс, научитесь использовать менеджеры по расположению.Если вам нужно отобразить что-то абсолютного размера на экране (у меня было), вы должны сделать калибровку.Отобразите строку и дайте пользователю изменить ее размер, скажем, до 5 см.

...