Qml:等宽/普通字体的平台独立方式
Qml: platform independent way for Monospace/Normal font
有没有办法在Qml中以独立于平台的方式在"正常"和"等宽"之间切换font.family
?
Label {
font.family: "Monospace"
}
目前,我为每个平台独立设置字体。随应用程序一起发送字体也是没有选择的,因为文本很可能是系统的语言(例如,用户界面是英语,但文本可能是帕西语)。
问候
这个问题的公认答案似乎有效,因此您可以将该字体作为上下文属性公开给 QML:
主.cpp:
#include <QApplication>
#include <QFontDatabase>
#include <QQmlApplicationEngine>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QQmlApplicationEngine engine;
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);
engine.rootContext()->setContextProperty("fixedFont", fixedFont);
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
return app.exec();
}
main.qml:
import QtQuick 2.0
import QtQuick.Window 2.0
import QtQuick.Controls 2.0
Window {
width: 400
height: 400
visible: true
Switch {
id: monospaceSwitch
}
Text {
text: "Hello World"
font: monospaceSwitch.checked ? fixedFont : Qt.application.font
anchors.centerIn: parent
}
}
这假定系统上存在等宽字体。
相关文章:
- 如何创建独立于平台的宏来包装编译器扩展?
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- Qml:等宽/普通字体的平台独立方式
- 发行配置的无效配置参数在X64平台上独立执行
- 独立于平台的方式捕获控制台/终端关闭事件
- 最佳平台独立 pi 常数
- 如何实现独立于平台的异步文件写入
- C++:如何保存独立于平台的二进制文件
- 独立于平台的OpenSSL库
- 包括具有一个头文件和独立源文件的特定于平台的库
- 如何以尽可能独立于平台的方式从 c++ 调用 .NET
- 最易于使用、轻量级、独立于平台的图形库,用于C++
- 尽管严重依赖JVM,但Java是如何独立于平台的
- 是否可以像Java一样在VM中运行,从而使C++平台独立
- 使用Xcode制作平台独立应用
- 是c++11线程平台独立的
- 是c++ std库平台独立的
- C++/QT中的线程化多核平台独立编程
- 是否有可能使C/ c++平台独立?