Meego touch实现页面跳转和返回
2011-08-28 23:34 狼人:-) 阅读(252) 评论(0) 编辑 收藏 举报前面写完了第一个Meego touch的程序,相信大家也看到Meego touch的界面风格,显示效果等等。不过却没有页面跳转,和返回等效果,那这篇文章就研究下,如何实现页面的跳转和返回?
Meego touch默认会通过返回键或者退出键实现当前页面的关闭,并且返回到前一个页面。
所以下面通过代码实现页面的跳转,最后效果如下图:
当程序启动时,会显示第一个页面,点击上面的“Open second page”,则会跳转到第二个页面。
在第二个页面点击返回按钮,则会关闭当前页面,跳回到第一个页面。
主要代码介绍:
main.cpp,程序入口,创建FirstPage的对象,然后使用page->appear(&window);window.show();使第一个页面显示
#include <MApplication>
#include <MApplicationWindow>
#include "firstpage.h"
int main(int argc, char **argv)
{
MApplication app(argc, argv);
MApplicationWindow window;
FirstPage *page = new FirstPage();
page->appear(&window);
window.show();
return app.exec();
}
FirstPage.cpp,第一个页面显示界面的创建,设置窗体标题,增加一个按钮,显示Open second page,然后通过connect(button, SIGNAL(clicked()), SLOT(openNextPage()))函数,使button点击之后,执行openNextPage函数。
在openNextPage()函数里面,创建SecondPage对象,并调用appear方法显示。
#include "firstpage.h"
#include <MSceneManager>
#include <MButton>
FirstPage::FirstPage() : MApplicationPage(0)
{
QString title, buttonTitle,labelTitle;
title = "First page";
buttonTitle = "Open second page";
setTitle(title);
MButton *button = new MButton(buttonTitle);
connect(button, SIGNAL(clicked()), SLOT(openNextPage()));
setCentralWidget(button);
}
void FirstPage::openNextPage()
{
SecondPage *secondPage = new SecondPage();
secondPage->appear(scene(), MSceneWindow::DestroyWhenDismissed);
}
firstpage.h
#ifndef FIRSTPAGE_H
#define FIRSTPAGE_H
#include <MApplicationPage>
#include <secondpage.h>
class FirstPage : public MApplicationPage {
Q_OBJECT
public:
FirstPage();
private slots:
void openNextPage();
};
#endif
SecondPage.cpp,第二个页面的创建,设置窗体标题,添加一个label,并显示I am in second page
#include "secondpage.h"
#include <MLabel>
SecondPage::SecondPage() : MApplicationPage(0)
{
QString title, labelTitle;
title = "Second page";
labelTitle = "I am in second page";
setTitle(title);
setCentralWidget(new MLabel(labelTitle));
}
secondpage.h
#ifndef SECONDPAGE_H
#define SECONDPAGE_H
#include <MApplicationPage>
class SecondPage : public MApplicationPage {
Q_OBJECT
public:
SecondPage( );
};
#endif
在文件里启动终端,执行qmake -project,生成XXX.pro文件,打开文件,添加CONFIG+=meegotouch,保存退出。
然后依次执行qmake,make。
执行完make之后,则会在文件夹下面生成执行文件,通过sudo ./<程序名>,则就会显示出上图所出现的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗