【发布时间】:2020-09-17 13:40:06
【问题描述】:
我使用的是 Windows 10 和 Qt 5.15.1。当我将 QML 应用程序窗口从低 DPI 屏幕(100% 比例)移动到高 DPI(125% 比例)屏幕时,窗口按比例放大(调整大小)以使用更多像素,正如预期的那样。这使得窗口在两个屏幕上看起来具有相同的物理尺寸。
但是,窗口中的项目不会缩放——它们保持相同的像素数。因此,所有项目在高 DPI 屏幕上看起来都更小。
当我在具有不同 DPI 的屏幕之间移动窗口时,如何使项目缩放(到相同的物理尺寸)?我希望所有项目都发生这种情况,例如文本、按钮、矩形等。
我的 QML 是:
import QtQuick 2.12
import QtQuick.Controls 2.12
ApplicationWindow {
visible: true
width: 240
height: 60
Text {
text: "Hello World"
font.pointSize: 14
}
}
我的 Python 是:
QtCore.QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QtCore.QCoreApplication.setAttribute(Qt.AA_UseOpenGLES)
app = QtWidgets.QApplication([])
engine = QtQml.QQmlEngine()
context = QtQml.QQmlContext(engine.rootContext())
designer = QtQml.QQmlComponent(engine, 'main.qml')
designer.create(context)
app.exec_()
【问题讨论】:
-
你的 main.cpp 中有没有这一行:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);?
标签: qt windows-10 qml dpi