按QtQuick样式设置QML按钮背景

按QtQuick样式设置QML按钮背景,qt,qml,qt5,qt-quick,qtquick2,Qt,Qml,Qt5,Qt Quick,Qtquick2,我在尝试设置按钮背景时遇到了很多困难 由于某些原因,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 proper

我在尝试设置按钮背景时遇到了很多困难

由于某些原因,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"
                }
    }

...

}
我遇到以下错误:

  • import QtQuick.Controls.Styles 1.2
    代码带下划线,表示未找到
    QML模块
  • Btn.qml:21:5:无法分配给不存在的属性“style”
    在我使用应用程序时出现
  • 奇怪的是,如果我删除
    import QtQuick.Controls.Styles 1.2
    ,则
    style:ButtonStyle{
    将带下划线

    我使用
    qt5.3.2

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

    QT       += core gui svg xml network quick gui-private qml quickwidgets widgets concurrent
    TARGET = ProjectName 
    TEMPLATE = app
    CONFIG += c++12 plugin
    
    任何想法都很感激,非常感谢您抽出时间帮助我解决问题

  • 我认为,未找到模块的问题在于以前版本的Qt。您应该使用维护工具删除Qt5.2。 在那之后,我在
    窗口中尝试了您的QML代码,它成功了(当然是在删除
    GridLayout
    s之后)

  • GridLayout
    需要模块
    import QtQuick.Layouts 1.1
    并应用于
    网格
    ,但您没有
    网格

  • 尝试改变

    导入QtQuick.Controls.Styles 1.2


    导入QtQuick.Controls.Styles 1.0

    您使用的是哪个Qt版本?qml/QtQuick/Controls/Styles中有什么?我在
    qml\QtQuick\Controls\Styles
    下有2个目录和一个文件:Base、Desktop目录和qmldir文件。顺便说一句,我认为
    CONFIG+=c++12
    必须是
    CONFIG+=c++11
    。很好他应该是c++11。我的Qt creator版本是3.1。你解决问题了吗。我也有同样的问题,我不能设置背景