2015-09-10 24 views
5

Tôi đang cố gắng tạo một chương trình rất đơn giản để tìm hiểu cách xác định các loại QML tùy chỉnh để sử dụng lại. Tôi không chắc tại sao tôi nhận được lỗi sau:Không thể gán cho thuộc tính không tồn tại

Cannot assign to non-existent property "color"

Tôi đã tìm kiếm câu trả lời và không tìm thấy bất kỳ nội dung nào giải quyết được.

Dưới đây là mã. Qt gạch chân colorradius màu đỏ, có nghĩa là nó đang được gắn cờ là "tên thuộc tính không hợp lệ".

//Button.qml 
import QtQuick 2.3 

Rectangle { 
width: 100; height: 100 
color: "red" 

    MouseArea { 
     anchors.fill: parent 
     onClicked: console.log("button clicked!") 
    } 
} 

//main.qml 
import QtQuick 2.3 
import QtQuick.Controls 1.2 

ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    menuBar: MenuBar { 
     Menu { 
      title: qsTr("File") 
      MenuItem { 
       text: qsTr("&Open") 
       onTriggered: console.log("Open action triggered"); 
      } 
      MenuItem { 
       text: qsTr("Exit") 
       onTriggered: Qt.quit(); 
      } 
     } 
    } 

    Column { 
     Button {width: 50; height: 50} 
     Button { x: 50; width: 100; height: 50; color: "blue" } 
     Button { width: 50; height: 50; radius: 8} 
    } 

} 

Trả lời

4

Điều khiển nhanh Qt có loại Button và bạn cũng vậy. Rõ ràng là Button từ việc nhập Điều khiển nhanh Qt (không có thuộc tính radius hoặc color) được chọn qua tệp cục bộ của bạn. Bạn có một vài tùy chọn:

  1. Đổi tên loại Button của bạn thành loại khác.
  2. Nhập Điều khiển nhanh Qt vào không gian tên.
  3. Nhập loại của bạn vào không gian tên.

Đây là cách bạn muốn làm tùy chọn # 2:

import QtQuick 2.3 
import QtQuick.Controls 1.2 as Controls 

Controls.ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

    menuBar: Controls.MenuBar { 
     Controls.Menu { 
      title: qsTr("File") 
      Controls.MenuItem { 
       text: qsTr("&Open") 
       onTriggered: console.log("Open action triggered") 
      } 
      Controls.MenuItem { 
       text: qsTr("Exit") 
       onTriggered: Qt.quit() 
      } 
     } 
    } 

    Column { 
     Button { 
      width: 50 
      height: 50 
     } 
     Button { 
      x: 50 
      width: 100 
      height: 50 
      color: "blue" 
     } 
     Button { 
      width: 50 
      height: 50 
      radius: 8 
     } 
    } 
} 
Các vấn đề liên quan