Я работаю над настольным приложением, которое иногда приходится запускать на виртуальной машине с помощью Windows Remote Desktop для доступа. Шрифты и градиенты заметно ухудшаются по внешнему виду при работе через Remote Desktop. Шрифты явно не сглаживаются (и обычно). Градиенты вырождаются в более крупные полосы сплошного цвета, теряя более плавный вид. Первоначально я предполагал, что Windows делает это для повышения производительности, но когда я сравнивал шрифты приложений в нашей продукции с приложениями в других приложениях (в частности, Visual Studio), я вижу, что Qt определенно отображает шрифты в диалоговом окне и QGraphicsScene
по-разному.Внешний вид приложения Qt, выполняющийся через удаленный рабочий стол
В строке заголовка приложения моего приложения я вижу, что шрифт точно соответствует внешнему виду других заголовков заголовков приложений, и это имеет смысл, потому что Windows рисует это. В моем приложении все верхние пункты меню и шрифты в диалогах не сглаживаются и выглядят ужасно. Мы широко используем QGraphicsScene
, и эти шрифты также ухудшаются.
У меня нет другого приложения, которое генерирует градиенты, чтобы сравнить их, но я просмотрел изображение с высоким разрешением через подключение к удаленному рабочему столу с помощью средства просмотра изображений Windows и выглядит так же хорошо, как на локальном рабочем столе.
Деградированный внешний вид означает, что мы не можем делать скриншоты для документации при использовании виртуальной машины. Мы также часто должны делать демонстрации с использованием виртуальных машин и удаленного рабочего стола, и внешний вид не привлекателен для показа клиентам. В нашей отрасли и внутри нашей компании усиливается давление на использование виртуальных машин вместо локальных физических машин, поэтому это становится более серьезной проблемой.
Оба симптома приводят меня к тому, что Qt знает, что я визуализирую с помощью Remote Desktop и что он предпочитает ухудшать внешний вид в пользу производительности. Я не хочу этого или, по крайней мере, мне нужно контролировать его.
Я подозреваю, что это похоронено где-то в системе стиля/темы Qt, но мне не повезло найти подсказки, которые указывают мне на правильное место, чтобы что-то сделать с этим, или, по крайней мере, ответ, который указывает, это даже не возможно. Любые советы высоко ценится.
«С QGraphicScene у нас есть OpenGL для рендеринга» - только если он настроен так. –
@FrankOsterfeld Я предполагаю, что если он не настроен так, то графика не так хороша. BTW, как настроить его для использования OpenGL? Я имею в виду даже НЕ УГОЛ. – AlexanderVX
Если проблема была ограничена QGraphicsScene, я мог бы рассматривать это как решение, но это все аспекты приложения ... шрифты в меню верхнего уровня, в диалоговых окнах и т. Д. Все это ухудшается, но только в нашем приложении Qt, а не в других программах Windows. Переход на OpenGL-рендеринг (который может оказаться нецелесообразным для нас) для сцены не поможет остальным. Моя догадка заключается в том, что это что-то в системе стиля, и что Qt обнаруживает подключение к удаленному рабочему столу и выбирает различные варианты стилизации. Любые идеи в этой области? – goug