Qt Creator4.5.1でQt5.10.1を使用していますが、styleプロパティを要素で使用することはできません。
たとえば、ここに示すように ButtonStyle QML Type 、次のようにします。
Button {
text: "A button"
style: ButtonStyle {...}
}
しかし、エラーが発生します:
存在しないプロパティ「スタイル」には割り当てられません
長方形、プログレスバーを試してみましたが、同じエラーが発生します。
編集#1:
私はこれらすべての輸入品を持っています。インポートが欠落している場合、ButtonStyleでエラーが発生しますが、エラーはstyleで発生します。
import QtQuick 2.2
import QtQuick.Controls 2.3
import QtQuick.Dialogs 1.0
import QtGraphicalEffects 1.0
import QtQuick.Shapes 1.0
import QtQuick.Layouts 1.3
import QtQuick.Controls.Styles 1.4
QMLには2種類のボタンがあります。
あなたの場合、Qt QuickControls 2ボタンをインポートしています:import QtQuick.Controls 2.3
であり、そのボタンにはstyle
属性がありません。
スタイルを使用する必要がある場合は、以下をインポートする必要があります。
import QtQuick.Controls 1.4
の代わりに:
import QtQuick.Controls 2.3
Qt QuickControlsおよびQtQuick Controls 2のアイテムを使用している場合は、名前空間を使用してそれらを分離できます。
import QtQuick.Controls 2.3 as QQC2
import QtQuick.Controls 1.4 as QQC1
QQC1.Button {
text: "A button"
style: ButtonStyle {...}
}
QQC2.another_item_of_Qt_Quick_Controls2{
}
背景とコンテンツアイテムの2つのビジュアルアイテムを変更することで、Qt Quick Controls 2
ボタンをカスタマイズできます。
https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-button
import QtQuick 2.12
import QtQuick.Controls 2.12
Button {
id: control
text: qsTr("Button")
contentItem: Text {
text: control.text
font: control.font
opacity: enabled ? 1.0 : 0.3
color: control.down ? "#17a81a" : "#21be2b"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 40
opacity: enabled ? 1 : 0.3
border.color: control.down ? "#17a81a" : "#21be2b"
border.width: 1
radius: 2
}
}
必ずQtQuick.Controls.Styles
をインポートしてください
import QtQuick.Controls.Styles 1.4
Button {
text: "A button"
style: ButtonStyle {...}
}