通过QtQuick Styles设置QML按钮背景

时间:2014-12-09 11:43:51

标签: qt qml qt5 qt-quick qtquick2

当我尝试在documention之后设置我的按钮背景时遇到很多困难。

由于某种原因,Qt找不到导入QtQuick.Controls.Styles。我试图以多种方式导入它,但没有成功。我的最后一次尝试:

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2

import QtGraphicalEffects 1.0

Button {
    id: btn
    property int row
    property int col
    property Item buttonPreview
    property bool hasPreview: true
    GridLayout.row: row
    GridLayout.col: col
    GridLayout.colSpan: 2
    GridLayout.rowSpan: 2
    width: 50
    height: 50

    style: ButtonStyle {
        background: Rectangle {
                 color:"white"
                }
    }

...

}

我遇到以下错误:

  1. import QtQuick.Controls.Styles 1.2代码带有下划线,表示QML module not found
  2. 我在使用该应用程序时出现
  3. Btn.qml:21:5: Cannot assign to non-existent property "style"
  4. 奇怪的是,如果删除import QtQuick.Controls.Styles 1.2style: ButtonStyle {会加下划线。

    我使用Qt 5.3.2

    我的.pro配置文件的一部分:

    QT       += core gui svg xml network quick gui-private qml quickwidgets widgets concurrent
    TARGET = ProjectName 
    TEMPLATE = app
    CONFIG += c++12 plugin
    

    感谢任何想法,非常感谢您抽出时间帮助解决我的问题。

2 个答案:

答案 0 :(得分:0)

  1. 我认为未找到模块的问题与之前版本的Qt有关。您应该使用维护工具删除Qt5.2。 之后,我在Window中尝试了您的QML代码并且它有效(当然在删除GridLayout之后)。

  2. GridLayout需要模块import QtQuick.Layouts 1.1并已应用于Grid,但您没有Grid

答案 1 :(得分:0)

尝试更改

import QtQuick.Controls.Styles 1.2

import QtQuick.Controls.Styles 1.0