2015-12-25 17 views
8

Piszę graficzną aplikację C++ używającą Qt 5.5.0 na OS X El Capitan na Retina MacBook Pro. Tekst jest pikselowany w całej aplikacji, więc podejrzewam, że tryb wysokiej rozdzielczości nie jest używany. Moja Info.plist zawiera następującą definicję:Obsługa Retina w Qt5 na OS X

<key>NSHighResolutionCapable</key> 
    <true/> 

Jak włączyć tryb wysokiej rozdzielczości (w szczególności do renderowania tekstu) w aplikacji Qt na OSX?

+0

Widżety Qt lub QML? –

+0

Aplikacja Moja aplikacja Qt Widgets działa idealnie na siatkówce i nie mam tego klucza w mojej .plist. Nie mam żadnych specjalnych kluczy. Właśnie sprawdziłem. –

+0

Używam widgetów Qt. – SurvivalMachine

Odpowiedz

3

Upewnij się, że twoje info.plist ma klucze NSPrincipalClass i NSApplication. Zgodnie z Qt docs, NSHighResolutionCapable jest opcjonalne i prawdziwe domyślnie. Oto cała moja plist dla odniesienia:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> 
<plist version="0.9"> 
<dict> 
    <key>NSPrincipalClass</key> 
    <string>NSApplication</string> 
    <key>CFBundleIconFile</key> 
    <string>@[email protected]</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleGetInfoString</key> 
    <string>Created by Qt/QMake</string> 
    <key>CFBundleSignature</key> 
    <string>@[email protected]</string> 
    <key>CFBundleExecutable</key> 
    <string>@[email protected]</string> 
    <key>CFBundleIdentifier</key> 
    <string>[email protected]@</string> 
</dict> 
</plist> 

Jeśli nalegać na określenie NSHighResolutionCapable ręcznie, trzeba pamiętać, że zrobiłeś to źle w swoim pytaniu. Oto prawo składnia z tych samych dokumentów:

<key>NSPrincipalClass</key> 
<string>NSApplication</string> 
<key>NSHighResolutionCapable</key> 
<string>True</string> 
+0

Próbowałem twój plist i ręcznie poprawnie określając 'NSHighResolutionCapable', ale nadal jest rozmyte/piksele. – SurvivalMachine

+1

Po przetestowaniu więcej, twoja odpowiedź jest poprawna. Mój katalog uruchomiony zawierał starą kopię .plist. Ręczne ustawienie 'NSHighResolutionCapable' nie było konieczne. – SurvivalMachine

+0

@ SurvivalMachine: jeśli tego nie potrzebujesz, jestem całkiem pewny, że możesz całkowicie wyrzucić plist. Powinien także działać bez niego. –