我是Qt的新手,目前我遇到了一些麻烦。我想从c ++代码在Qt中创建一个网格布局,并能够从那里进行管理。我尝试了很多不同的东西,但都没有。
基本上,我想做的是有一个带有按钮的窗口(完成),按下按钮,窗口应该变成一个按钮网格,没有固定数量的行或列。 (希望我明白我想做什么)
此时,我创建了两个.qml,一个qml文件包含第一个窗口的代码(一个只有一个按钮),另一个qml文件的网格布局中没有任何内容。还有两个c ++文件,第一个是main.cpp,第二个是我写的代码点击按钮“填充”网格的代码。
同样,我是Qt的新手,所以如果你有任何更好的想法,请告诉我!
答案 0 :(得分:1)
您可以使用Repeater
创建一些Button
作为Grid
的子项。 Grid
会自动设置Button
的位置,因此您不应设置任何anchors
或坐标。
要处理信号,您可以在某处定义一个信号,然后连接到按钮信号。
Grid {
id: buttonGrid
signal buttonClicked(int index)
Repeater {
model: 100 // or any integer number
delegate: Button {
onClicked: buttonGrid.buttonClicked(index)
}
}
}
您也可以使用ListModel
或任何QAbstractItemModel
- 后代,而不是使用整数模型。然后你也可以使用他们的角色来获得像textes或颜色或函数......
也可以使用带有textes的简单数组。