当前位置: 代码迷 >> 综合 >> 【QML】父item访问子item
  详细解决方案

【QML】父item访问子item

热度:31   发布时间:2023-10-21 01:49:19.0

(一)环境

windows+Qt 5.12.0

import:

import QtQuick 2.4
import QtQuick.Controls 2.3
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0

描述:parent item访问children item、父空间访问目录下的子控件

 

(二)一般对象

一般的对象都采用<item控件 id>.children,可以得到item<list>

比如Rectangle、Button,点F1进入帮助手册你会发现:

Import Statement:
import QtQuick 2.12
Inherits:
Item

他们都是直接继承item的。

访问方法如下,[]里面的下标就是顺数第几个子控件,动画元素不算入这个数量

Rectangle{id:window_middle_rectangleButton:{width:10}
}
window_middle_rectangle.children[0].width

 

(三)特殊对象

比如ScrollView,使用children访问是得到一个空对象,尽管ScrollView间接继承于Item,也有children这个property

点击F1进入ScrollView帮助文档,可以看到他是继承于


Import Statement:
import QtQuick.Controls 2.5
Since:
Qt 5.9
Inherits:
Pane

有一个特殊的property:

Properties
contentChildren : list<Item>
contentData : list<Object> 

所以访问需要:

ScrollView {id: winmid_sv_mainButton {id: button1_1}
}
winmid_sv_main.contentChildren[0].toggle()

.

  相关解决方案