编码与资源
- Qt5
- MLT 介绍。
- KDE 框架(Frameworks) (opens in a new tab)
- XMLGUI 技术 (opens in a new tab)(例如用于
kdenliveui.rc文件)
- XMLGUI 技术 (opens in a new tab)(例如用于
区域设置(Locale)处理
区域设置很重要,例如它决定了数字以用户习惯的格式呈现。
有些国家会把 12500.42 写作 12.000,42。
自 20.08 起,Kdenlive 遵循以下规则:
- 解析数据时(无论由 Kdenlive 还是由 MLT 等其他库解析),使用
C区域设置。 这对项目文件尤其重要。原因是:在程序之间传递数据时, 格式必须良好定义,且不取决于用户恰好身处何地。 - 向用户呈现数据时,使用用户自己的区域设置。
MLT 使用由 setlocale() 设置的 C 区域设置,且该设置必须为
C。如果被设置为例如 hu_HU.utf-8(它使用 , 作为小数点分隔符),
那么在保存项目文件时属性会被转换为该格式,导致项目文件损坏。
在 Kdenlive 中,QLocale 只应在一种情况下使用:当数据展示给用户
或从用户处读取时。通常 Qt 已经处理了这一点。例如,
QDoubleSpinBox 会以用户本地的数字格式呈现 double 值。
配置
具名设置存储在 kdenlivesettings.kcfg 中。要添加一个带默认值的新
设置,请在设置文件中添加一个条目,例如:
<entry name="logscale" type="Bool">
<label>Use logarithmic scale</label>
<default>true</default>
</entry>随后可以按如下方式读取和写入该设置:
// Read
bool logScale = KdenliveSettings::logscale();
// Write
KdenliveSettings::setLogscale(true);