共通 JavaScript 変数と関数
utils.js:
.pragma library
const trolltechGreen = Qt.rgba(141/255, 192/255, 48/255)
const trolltechPurple = Qt.rgba(131/255, 124/255, 172/255)
const buttonTextColor = Qt.rgba(0.0, 0.47843137254902, 1.0, 1.0)
function colorName(color) {
const tos = Object.prototype.toString;
function formatElement(e) {
return ("00" + Math.round(255*e).toString(16)).slice(-2);
}
const typeString = tos.call(color);
const typeName = typeString.match(/[a-z]+/gi)[1];
if (typeName === "String") {
return "";
}
const r = formatElement(color.r);
const g = formatElement(color.g);
const b = formatElement(color.b);
const a = formatElement(color.a);
return "#%1%2%3%4".arg(a).arg(r).arg(g).arg(b);
}
const monoFont = function() {
if (Qt.platform.os == "linux") {
return Qt.font({ family: "DejaVuSansMono" });
} else if (Qt.platform.os == "windows") {
return Qt.font({ family: "Lucida Console" });
} else if (Qt.platform.os == "osx") {
return Qt.font({ family: "Osaka", styleName: "Regular-Mono" });
} else {
return Qt.font({ family: "Lucida Console" });
}
}();
function grayFor(color) {
return ((255 * color.r * 11 + 255 * color.g * 16 + 255 * color.b * 5) / 32) / 255;
}
function textColorFor(aBackgroundColor) {
return grayFor(aBackgroundColor) > 0.5 ? "black" : "white";
}
function randomNumberBetween(first, last) {
return first + Math.floor(Math.random() * (last - first + 1));
}
function classNameOf(object) {
return object.toString().replace(/\(.*$/, "");
}
var qtVersionNumber = function() {
const component = Qt.application.version.split(".");
return Number(component[0]+ ("0" + component[1]).substring(-2) + ("0" + component[2]).substring(-2));
}();
function dumpObjectTree(object) {
function traverse(object, level) {
if (!object.children) {
return;
}
for (var index in object.children) {
var line = "";
for (var _ = 0; _ < level; ++_) {
line += " ";
}
const child = object.children[index];
line += classNameOf(child);
if (child.objectName) {
line += " (%1)".arg(child.objectName);
}
print(line)
traverse(child, level + 1);
}
}
traverse(object, 0);
}
説明
変数の説明
trolltechGreen
Trolltech の緑色。
trolltechPurple
Trolltech の紫色。
buttonTextColor
ボタンテキスト色。
monoFont
各プラットフォームでの代表的な固定幅フォント名。
qtVersionNumber
Qt のバージョンナンバーを MNNPP 形式の整数で保持する。Qt 5.8.1 ならば 50801、Qt 5.9 ならば 50900。
関数の説明
String colorName(color color)
色名のアルファ値を省略せずに常に #aarrggbb 形式の文字列で返す。
Number grayFor(color color)
指定された色をグレイ化する。Qt C++ の qGray() と同じ。
String textColorFor(color aBackgroundColor)
指定された背景色に対してはっきり見えるテキスト色を "white" か "black" で返す。
Number randomNumberBetween(int first, int last)
first を下限、last を上限として乱数を返す。
String classNameOf(QObject object)
QML オブジェクトの C++ クラス名を返す。
dumpObjectTree(object)
ビジュアルツリー構造を表示する。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。