web-dev-qa-db-ja.com

QML-存在しないプロパティ「スタイル」に割り当てることはできません

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
11
vincedjango

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{
}
17
eyllanesc

背景とコンテンツアイテムの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
    }
}
0
user3405291

必ずQtQuick.Controls.Stylesをインポートしてください

import QtQuick.Controls.Styles 1.4
Button {
    text: "A button"
    style: ButtonStyle {...}
}
0
Mohammad Kanan