Qml 错误:无法将 QObject* 分配给 QQuickItem
Posted
技术标签:
【中文标题】Qml 错误:无法将 QObject* 分配给 QQuickItem【英文标题】:Qml Error: Cannot assign QObject* to QQuickItem 【发布时间】:2020-05-25 11:05:30 【问题描述】:我在 ApplicationWindow 中有一个带有 MouseArea 的矩形。通过单击鼠标区域,应该增加矩形的大小,这非常有效。但是以某种方式将 ApplicationWindow 中间的矩形居中不起作用
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
ApplicationWindow
id: originalWindow
visible: true
width: 1920
height: 1080
title: qsTr("Bookshop Management System")
Rectangle
id: searchUserButton
x: 450
y: 206
radius: 10
width: 200
height: 200
color: "#ccc8c8"
MouseArea
anchors.fill: parent
onClicked: searchUserButton.width = 1100
searchUserButton.height = 600
searchUserButton.anchors.centerIn = originalWindow
rectangle2.visible = false
rectangle3.visible = false
rectangle4.visible = false
rectangle5.visible = false
rectangle6.visible = false
错误代码是`错误:
Cannot assign QObject* to QQuickItem*
【问题讨论】:
试试:searchUserButton.anchors.centerIn = originalWindow.contentItem
【参考方案1】:
您已经设置了 searchUserButton 的宽度和高度,因此您只需正确设置此按钮的 x 和 y 坐标。
searchUserButton.x = (originalWindow.width - searchUserButton.width) / 2
searchUserButton.y = (originalWindow.height - searchUserButton.height) / 2
【讨论】:
以上是关于Qml 错误:无法将 QObject* 分配给 QQuickItem的主要内容,如果未能解决你的问题,请参考以下文章
Q_INVOKABLE 是不是需要在 Qt5 中从 QML 调用公共 QObject 函数?