Meego touch实现页面跳转和返回

简介: 前面写完了第一个Meego touch的程序,相信大家也看到Meego touch的界面风格,显示效果等等。不过却没有页面跳转,和返回等效果,那这篇文章就研究下,如何实现页面的跳转和返回?Meego touch默认会通过返回键或者退出键实现当前页面的关闭,并且返回到前一个页面。

前面写完了第一个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 ./<程序名>,则就会显示出上图所出现的结果。

目录
相关文章
|
监控 IDE 开发工具
【esp32c3配置arduino IDE教程】
设计用户操作界面,该设备具备简单易用的操作界面,外加显示屏SSD1306和旋转编码器进行显示和控制,用户后期可进行二次开发WiFi或蓝牙连接电脑或手机监控。
3173 0
|
存储 数据安全/隐私保护
RPMB说明与使用(Replay Protected Memory Block)
RPMB说明与使用(Replay Protected Memory Block)
4650 0
|
XML Java Android开发
Android Studio App开发之服务Service的讲解及实战(包括启动和停止,绑定与解绑,推送服务到前台实现音乐播放器,附源码)
Android Studio App开发之服务Service的讲解及实战(包括启动和停止,绑定与解绑,推送服务到前台实现音乐播放器,附源码)
1636 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
264928 0
|
Linux 网络架构
通过route , tracert , traceroute 查看本地路由配置及访问ip或域名时经过的路由信息
通过route , tracert , traceroute 查看本地路由配置及访问ip或域名时经过的路由信息
4566 2
|
物联网 Android开发
【Android App】发送BLE广播及通过主从BLE实现聊天应用讲解及实战(附源码和演示 超详细)
【Android App】发送BLE广播及通过主从BLE实现聊天应用讲解及实战(附源码和演示 超详细)
2901 1
|
数据挖掘 Linux
如何在 Linux 中将输出重定向到文件和标准输出?如此简单!
如何在 Linux 中将输出重定向到文件和标准输出?如此简单!
3218 0
如何在 Linux 中将输出重定向到文件和标准输出?如此简单!
|
监控 安全 算法
智能终端信息安全概念(四):硬件安全技术—主芯片安全技术(2)
智能终端信息安全概念(四):硬件安全技术—主芯片安全技术(2)
291 0
|
Go C语言 Windows
【教程】使用 IDA Pro + 010 Editor 反编译和修改 so 文件,让你轻松玩转逆向工程!
当我们在做逆向工作时,总会遇到需要查看某个 so 文件的情况,甚至可能需要对其进行一些微小的修改。这时候,我们就需要来点反编译的魔法了。
12364 0
【教程】使用 IDA Pro + 010 Editor 反编译和修改 so 文件,让你轻松玩转逆向工程!
|
消息中间件 Kafka Docker
基于Docker搭建Kafka集群
基于Docker搭建Kafka集群是最近一直在用的技术,同时也是自己的总结,采用Docker实现三台机器的集群搭建,分分钟教你学会如何搭建。
589 0
基于Docker搭建Kafka集群

热门文章

最新文章