コントロール素材)、そのフォントサイズQGuiApplication::font
に依存しなければならないテキストを持つすべてのコントロール(のようなLabel
、TextField
は、)変更する前に持っていたQCoreApplication
、フォントサイズの値を使用しています。フォントサイズは2
QFont font = application.font();
bool ok = false;
font.setPointSize(QSettings{}.value("fontSize", 17).toInt(&ok));
Q_ASSERT(std::exchange(ok, false));
application.setFont(font);
Text
、TextField
のみが適切にサイズ変更されますが、それらは私のGUIでは使用できません。
デフォルトののスタイルを使用すると、上記のアイテムのサイズが正しく変更されます。
グローバルスタイルfont.pointSize
に応じて、すべてのアイテムをサイズ変更する方法デフォルト?
もう1つの問題は、現在使用されているスタイルテーマの強調表示されたテキストと背景に適切な(コントラストとスタイルに適合する)色を得る方法です。子どもたちにApplicationWindow
からSystemPalette { id: palette }
を使用すると(たとえばpalette.highlightedText
が"white"
で、palette.highlight
が"blue"
か"darkblue"
)(わからない)のみデフォルトスタイルに適した色を与えます。それはスタイルのテーマでは醜い、デフォルトと異なるとは異なります。
もう一つの重要な観察は次のとおりです。私はルートApplicationWindow
にfont.pointSize: 17
(または均等font: Qt.application.font
)を設定した場合は、すべてのアイテムが新しいコンテキストを持っているそれらの人々のを除いて、適切にリサイズされています*View
に、highlight:
とdelegate:
秒を言いますsourceComponent:
をLoader
に、Component
とRepeater
などのデフォルトのプロパティ項目と、親のItem
のコンテキストが失われたためにフォントの継承が壊れます。
私は手動で新しいコンテキストごとにApplicationWindow.window.font
を "継承"する必要があるようです。もしそうなら悲しいです。それは退屈です。 Repeater
私はLabel
をたくさん持ってRowLayout
を使用しています:Label
のそれぞれにfont: ApplicationWindow.window.font
を追加する必要があります。
ところで異なるスタイルのテーマを試すには、1にすべての悪い設計上の決定を見つけるための機会を与えてくれます。合理的な範囲の 'font.pointSize'ですべての可能なスタイルを列挙するGUIのシーブのようなものです。 – Orient