如何在QML中使用ListView并导航到其它页面中

如何在QML中使用ListView并导航到其它页面中,第1张

1)使用PageStack来完成

在我们的RssReader中的例子中,我们使用了PageStack来完成我们的导航。我们可以把我们的每个页面都做成我们的Page。当我们的页面被点击后,我们把新的Page压入栈中。在返回时,我们只需要点击返回按钮即可:

我们可以在我的例程中找到相应的代码。

2)使用一个不可见的显示在需要时显示出来

在我们的使用中,我们使用两个重叠在一起的窗口,但是详细的页面只有在ListView中的item被点击后才能显示。在默认的情况下,我们显示ListView。

[html] view plaincopy在CODE上查看代码片派生到我的代码片

ListView {

id: listview

clip: true

anchorsfill: parent

model:mymodel

header: Text {

text: "This is the header"

fontpixelSize: 30

Rectangle {

anchorstop: parentbottom

width: listviewwidth

height: unitsgu(04)

color: "blue"

}

}

delegate: MyDelegate {}

footer: Text {

text: "This is the footer"

fontpixelSize: 30

}

}

Item {

id: popup

visible: false

clip: true

property url loadUrl

onLoadUrlChanged: {

opacity = 0;

visible = (loadUrl == '' false : true);

consolelog("opacity: " + opacity );

consolelog("visible: " + visible );

}

anchorsfill: parent

Rectangle {

id: bg

anchorsfill: parent

color: "white"

}

MouseArea{

anchorsfill: parent

enabled: popupvisible

//Eats mouse events

}

Loader{

focus: true

source: popuploadUrl

width: parentwidth

height: parentheight -toolbarheight

}

Rectangle {

id: toolbar

width: parentwidth

height: unitsgu(4)

anchorsbottom: parentbottom

color: "blue"

Icon {

name: "previous"

width: unitsgu(35)

height: unitsgu(35)

MouseArea {

anchorsfill: parent

onClicked: {

popuploadUrl = "";

anirunning = true;

}

}

}

}

NumberAnimation on opacity {

id: ani

from: 0

to: 1

duration: 3000

}

}

详细一点想要怎么交互你可以用qmlRegisterType在QML启动之前(maincpp中)把C++的类注册成为一个QML类型,在C++里面定义好你的属性信号方法之类的,在QML页面上调用这些东西就可以或者你可以在maincpp中定义上下文 mlContextconte

为了能够在我们的QML应用中很好地使用C++,我们采用了我们SDK提供的"QtQuick App with QML UI (qmake)"

我们创建一个叫做"baiduweather"的应用.我们想利用我们的百度提供的API接口

我只说个原理,剩下的你自己实现吧。

画面显示的控件是GridView,使用Gridview时需要指定数据源(即Model)。示例里使用listmodel来做数据源。而且listmodel中写定了3条数据。你只要读取目录下的文件列表,然后赋值给listmodel就可以了,gridview会自动显示的。至于如何在qml中获得文件列表,以及如何赋值给listmodel,需要进阶学习,你百度谷歌一下吧。多看看官方例子有好处,看明白原理再改。

qml的实质是js-

javascript

,你可以看看这个相关的东西,不过也没有那么难,只不过你老是和你已经学会的东西比较罢了,把自己放的低一点,很容易的……

描述性语言,没那么深奥。你说的“切换页面”是Loader组件吧,别联想java,你可以联想网页构成形式。

main()

{

int a=15;

float b=1231234567;

double c=123456781234567;

char d='p';

printf("a=%d,%5d,%o,%x\n",a,a,a,a);

printf("b=%f,%lf,%54lf,%e\n",b,b,b,b);

printf("c=%lf,%f,%84lf\n",c,c,c);

printf("d=%c,%8c\n",d,d);

}

本例第七行中以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。 第八行中以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%54lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行输出双精度实数,“%84lf ”由于指定精度为4位故截去了超过4位的部分。第十行输出字符量d,其中“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

使用printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的。请看下面两个例子:

以上就是关于如何在QML中使用ListView并导航到其它页面中全部的内容,包括:如何在QML中使用ListView并导航到其它页面中、C++与QML交互时有个问题,可能缺少一步什么 *** 作,求大神指点。、如何在Qt C++中解析JSON数据并使之被QML应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10128927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存