2016-08-20 21 views
4

私が取り組んでいる新しいqt 5.7アプリケーションにいくつかのスタイルを適用しようとしていますが、以下は全く動作しません。 qrc:/SignInView.qml:67存在しないプロパティ "style"に割り当てることができません 同じ理由でデザインモードで編集できません。QMLのTextFieldにスタイルを適用するにはどうすればよいですか?それは "スタイル"属性が利用できないようです

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Layouts 1.1 
import QtQuick.Controls.Styles 1.4 

Page { 
    id: page1 
    ColumnLayout { 
     id: columnLayout1 
     height: 100 
     anchors.right: parent.right 
     anchors.left: parent.left 
     anchors.top: parent.top 

     Label { 
      text: qsTr("Label") 
      font.pointSize: 16 
      horizontalAlignment: Text.AlignHCenter 
      Layout.fillWidth: true 
     } 

     Image { 
      id: image1 
      width: 200 
      height: 200 
      Layout.alignment: Qt.AlignHCenter | Qt.AlignTop 
      fillMode: Image.PreserveAspectCrop 
      anchors.horizontalCenter: parent 
      source: "qrc:/qtquickplugin/images/template_image.png" 

      Button { 
       id: button1 
       text: qsTr("Button") 
       anchors.bottomMargin: 10 
       anchors.rightMargin: 10 
       anchors.bottom: parent.bottom 
       anchors.right: parent.right 
      } 
     } 

     Rectangle { 
      id: field1 
      width: 200 
      height: 40 
      color: "#ffffff" 
      Layout.fillWidth: true 



      Label { 
       id: label1 
       text: qsTr("Full Name") 
       anchors.topMargin: 0 
       anchors.left: parent.left 
       anchors.leftMargin: 5 
       anchors.top: parent.top 
      } 
      TextField { 
       style: TextFieldStyle { 
        textColor: "black" 
        background: Rectangle { 
         radius: 2 
         implicitWidth: 100 
         implicitHeight: 24 
         border.color: "#333" 
         border.width: 1 
        } 
       } 
      } 
     } 
    } 
} 

私はこの例に従うことをしようとされています

http://doc.qt.io/qt-5/qml-qtquick-controls-styles-textfieldstyle.html

それはスタイルが存在しないエラーを与えるのQt Creatorを内のstyle属性で失敗します。 私のライブラリがロードされていないか、あるいは私がセットアップしている環境かもしれないと思います。 私はボタンや他の場所にスタイルを持っていません。私はそれが働くだろうが、それがないのインポートを持っていたと思った。

SOに関する関連問題はこちらです:QML - How to change TextField font size しかし、ここではうまくいくようです。 Qtのクイックにおいて

答えて

15

TextField::styleとしてそのようなプロパティが存在しない、2を制御します。一般に、Qtクイックコントロール2のスタイルオブジェクトを使用する方法はありません。Qtクイックコントロールの2つのメジャーバージョン間のAPIは互換性がありません。詳細については、次のマニュアルページを参照してください:

は、新しいAPI-互換性のないメジャーバージョンが導入された、基本的に重くを作るための方法はありませんので、 Qtクイックコントロール1のローダーベースのアーキテクチャは、適切に機能します。従ってComponent SのすべてがダイナミックローディングはQtのクイックに捨てた動的動的にロードされたスタイルオブジェクトによって提供Component sからインスタンス化するために使用2.参加者は今の代わりに、「代わりに」インスタンス化制御の一部であるコントロール。本質的には:

TextField { 
    style: TextFieldStyle { 
     textColor: "white" 
     background: Rectangle { color: "black" } 
    } 
} 

TextField { 
    color: "white" 
    background: Rectangle { color: "black" } 
} 

あなたは歴史hereについての詳細を読むことができます。特に、this postは、Qtクイックコントロール2の基本的な構造の変更を強調しています。

関連する問題