您可以QScreen
在 Qt 5 中使用它,在 Qt 4 中您可以使用QSystemDisplayInfo
Qt Mobility 中的类。
有QSystemDisplayInfo
- http://doc.qt.digia.com/qtmobility/qsystemdisplayinfo.html
相关方法是getDPIHeight
和getDPIWidth
。
您也可以使用QDesktopWidget
'sphysicalDpiX
和physicalDpiY
方法。
使用QScreen
- http://qt-project.org/doc/qt-5.0/qtgui/qscreen.html#physicalDotsPerInch-prop
((QGuiApplication*)QCoreApplication::instance())
->primaryScreen()->physicalDotsPerInch()
Run Code Online (Sandbox Code Playgroud)
还有physicalDotsPerInchX
和physicalDotsPerInchY
。
最终我创建了一个小的可可函数来为我返回这个值。我用它来确定paintEvent的时间是否应该使用hiDPI图像。在我的 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);
}
Run Code Online (Sandbox Code Playgroud)
我仅在 Mac 上有条件地构建此 .mm 文件,并从 Mac 上的 C++ 代码调用此静态函数。
归档时间: |
|
查看次数: |
3097 次 |
最近记录: |