Qt如何支持高分辨率屏幕(高分屏)

 

Qt从5.6.0开始,支持High-DPI。
int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
    QApplication a(argc, argv);
    ......
}

 

注意,QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一定要加在QApplication创建 之前。

#if (QT_VERSION >=QT_VERSION_CHECK(5, 6, 0))保证只在Qt5.6.0及以上版本可用。

 

但是Qt5.6.0对高分屏的支持存在bug,在Surface Pro 4上亲测:

1.在无边框程程序setWindowFlags(Qt::FramelessWindowHint);下调用this->showMaximized();并不能实现最大化。

2.在使用QWebEngine时,输入法候选框的位置会跑偏(不在输入框的下方)。

3.在使用QWebEngine时,当输入中途按退格键(BackSpace),第一个输入的字符不能被正常删除。

Qt5.7.1修复了这三个bug。

 

参考链接:http://www.qtcn.org/bbs/simple/?t61685.html

 

你可能感兴趣的:(Qt)