6

OS X で Qt 4.8.4 を使用する -デスクトップ アプリケーションの開発。ペイント時に、hiDPI ディスプレイ (「網膜」) を使用しているかどうかを検出できる必要があります。これを達成する方法を知っている人はいますか?

4

2 に答える 2

4

最終的に、この値を返す小さなココア関数を作成しました。hiDPI 画像を使用する必要があるかどうかを paintEvent の時間を決定するために使用します。MacBook Pro 15" Retina で魅力的に動作します。

bool MYAppCocoaServices::isHiDPI(QWidget * widget)
{
    NSView* view = reinterpret_cast<NSView*>(widget->winId());
    CGFloat scaleFactor = 1.0;
    if ([[view window] respondsToSelector: @selector(backingScaleFactor)])
        scaleFactor = [[view window] backingScaleFactor];

    return (scaleFactor > 1.0);
}

この .mm ファイルを条件付きで Mac のみでビルドし、Mac の C++ コードからこの静的関数を呼び出します。

于 2013-05-18T17:24:34.290 に答える