可滚动页面的QT高度问题
我正在尝试定制Qt抽屉菜单()。 我所做的主要更改是将窗格块替换为独立视图项目列表:可滚动页面的QT高度问题,qt,menu,qml,drawer,Qt,Menu,Qml,Drawer,我正在尝试定制Qt抽屉菜单()。 我所做的主要更改是将窗格块替换为独立视图项目列表: StackView { id:homeView anchors.fill: parent initialItem:ProjectsList{ } } } ProjectList.qml: import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.0 import QtQuick.Co
StackView {
id:homeView
anchors.fill: parent
initialItem:ProjectsList{
}
}
}
ProjectList.qml:
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
import QtQuick.Controls.Material 2.0
ScrollablePage {
id:projectsListPage
ListView {
id: listView2
anchors.fill: parent
delegate: ItemDelegate {
width: parent.width
text: model.title
}
model: ListModel {
ListElement { title: qsTr("2Projects list2j") }
ListElement { title: qsTr("Projects liste") }
ListElement { title: qsTr("Projects listr") }
ListElement { title: qsTr("Projects list3") }
}
}
}
不幸的是,我只能看到列表中的一行,其他行是隐藏的,但我可以滚动它。请帮助我,按ScrollView填充整个页面(高度属性无效:()
可滚动页面:
import QtQuick 2.7
import QtQuick.Controls 2.0
Page {
id: page
default property alias content: pane.contentItem
Flickable {
anchors.fill: parent
contentHeight: pane.implicitHeight
flickableDirection: Flickable.AutoFlickIfNeeded
Pane {
id: pane
width: parent.width
}
ScrollIndicator.vertical: ScrollIndicator { }
}
}
首先:
ListView
本身是一个Flickable
,因此它本身是可滚动的。现在,您将Flickable
打包在一个Flickable
中,这似乎既不必要又有问题
滚动页面中的外部Flickable
的大小由窗格的高度决定,而窗格的高度由列表视图的大小决定,即0。因此很明显,这是不可行的。
您可以将ListView
的高度设置为自己的contentItem.height
,这样可以工作,但是您已经加载了所有元素,并且不再从动态创建和销毁中获益
如果我没弄错的话,您希望页面的大小与需要的一样大,但最大大小为StackView
的父级
我建议不要使用你的滚动页面
,而是使用一个普通的页面
,直接将列表视图
打包在那里。让列表视图
填充页面
,并将页面.implicitHeight
设置为Math.max(parent.height,ListView.contentItem.height)
或类似的内容
您必须为列表视图设置一个大小,因为它没有提供有意义的隐式大小!!!
您的列表视图将尝试根据锚点填充父项。fill:parent
指令,但是项目列表页面
没有定义大小,并且我不确定堆栈中的initialItem
View
将为您的ProjectsList
实例提供正确的维度。此外,您的StackView
代码中有额外的父级,并且ProjectsList元素的qml文件具有不同的名称:ProjectList.qml,如果您没有使用带有路径和元素名称定义的qmldir
,则这些名称应该相同。您可以可滚动页面的代码如何?我想你的问题在于你的修改。德米特里,谢谢,但我的目标是用当前页面的内容填充整个区域,所以我无法设置元素的大小。至于命名,是的,这是我的错别字,对不起。德姆,谢谢,当然,我已经把它附加到问题上了。Thnx太多了,它这是我的错。我刚刚删除了可滚动页面,它正在工作!我很笨…我按照他们的例子,认为它是抽屉菜单的重要部分,从来没有想过我必须删除它…我应该更仔细地阅读Quick element的手册。