當我使用any method選擇非默認(或基地)樣式Qt的快速控制2應用(即通用或之一材料),那麼所有的文本(其字體大小必須依靠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
何時使用樣式,其他默認?
相互連接的問題是如何獲得適當的(意思是「對比度」和風格符合的),比如說顏色,突出顯示的文本和背景爲當前主題風格中使用?從兒童ApplicationWindow
使用SystemPalette { id: palette }
給出了只適合默認風格的顏色(比如palette.highlightedText
爲"white"
,palette.highlight
是"blue"
或"darkblue"
(不知道))。它看起來醜陋的風格主題,從默認不同。
另一個重要的觀察是:如果我將font.pointSize: 17
(或同等font: Qt.application.font
)根ApplicationWindow
,那麼所有的項目都適當調整,除了那些他們具有新的上下文的:說,highlight:
和delegate:
s轉換*View
S,sourceComponent:
s轉換Loader
S,Component
和Repeater
和其他的默認屬性項,其中因迷路父Item
的上下文的字體休息的繼承。
看來,我應該爲每一個新的上下文手動「繼承」 ApplicationWindow.window.font
。如果是這樣,那很傷心。這很無聊,例如,如果在Repeater
我用RowLayout
有大量的Label
S:在每個Label
我要補充font: ApplicationWindow.window.font
。
BTW嘗試不同風格的主題,給人一種找到所有的不好的設計決策的機會。它就像一個用於GUI的篩選器,它用'font.pointSize'的合理範圍枚舉所有可能的樣式。 – Orient