改變style
的一個組件,似乎取代全部默認樣式的功能。有沒有辦法只改變一個功能?QT QML如何改變一個功能,比如按鈕樣式
例如,假設我想要一個紅色按鈕;
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
ApplicationWindow
{
visible: true
width: 640
height: 480
Button
{
height: 200
width: 200
text: "Press me"
style: ButtonStyle
{
// changes background but also throws away everything else
// in standard button style
background: Rectangle { color: "red" }
}
}
}
重新定義ButtonStyle
與background
工作正常,改變按鈕的顏色,但隨後系統默認ButtonStyle
內的一切都沒了。例如,邊框和點擊突出顯示。
如何更改一個功能並保留其餘功能?
對不起,如果這之前已經問過。
感謝,
更新
上述問題對於控制1,但對於控制2.下面是控制2.
import QtQuick 2.7
import QtQuick.Controls 2.1
ApplicationWindow
{
visible: true
width: 640
height: 480
Button
{
height: 200
width: 200
text: "Press me"
// changes background but also throws away everything else
// in standard button style
background: Rectangle { color: "red" }
}
}
bugger。抱歉是的,我應該使用Controls2.Button。我改變了這一點,但它除了'Label' - >'contentItem'外都是一樣的。然後我有同樣的問題,只要我重寫,說'背景'。我喜歡關於着色器和Colorize的想法。我認爲這是添加樣式比改變這些屬性更好的方法。 FWIW,我認爲如果你不能以某種方式繼承原件,那麼這些屬性是不好的設計。謝謝。我會繼續提出你的建議。 –
請更新您的問題以反映您實際使用的內容。他們是兩個非常不同的樣式API。 – Mitch
雖然我已經更新了答案以解決QtQuick.Controls 2.x的一些可能性,但更新問題以匹配問題是很好的,因此它可以幫助其他人。進一步請不要忘記接受答案,如果它包含你在找什麼。同樣請這樣做,對於其他問題的所有答案,因爲這樣做既:對花時間回答的人有禮貌,並幫助人們找到答案,如果他們遇到同樣的問題。 – derM