1. API接口
ApusIDE提供了页面管理器(pm)供开发者通过C++代码对页面进行操作,最常用的几个接口函数如下:
/**
* @brief 打开页面
* @param id 页面名称id, 默认空时打开首页
* @param mode 模式,默认0-打开新页面
* @param target 父页面, 默认nullptr
* @return 失败时返回空指针
*/
virtual IPagePtr open(const string& id = "", int mode = PageMode::NEWWIN, STTWidget* target=nullptr) throw() = 0;
/**
* @brief 从已打开页面中获取指定页
* @return nullptr或页面指针
*/
virtual STTPage* getPage(const string& id)=0;
/**
* @brief 关闭指定页
* @param id
* @return
*/
virtual bool close(const string& id)=0;
/**
* @brief 获取当前页(最上层页)
* @return nullptr或页面指针
*/
virtual STTPage* getCurrentPage()=0;
2. 用法
2.1 打开页
void Frm01::wMMSwitch1_clk_cb(uint16_t code, LvEvent e) {
//打开页,默认使用新建方式
pm->open("Frm02");
//弹窗
pm->open("Frm02",PageMode::MODAL, NULL);
//嵌入方式
pm->open("Frm02",PageMode::EMBEDDED, wMPanel1);
}
2.2 关闭页
void Frm01::wMMSwitch1_clk_cb(uint16_t code, LvEvent e) {
//关闭页
pm->close("Frm02");
}
2.3 获取页
#include "Frm34.h"
//包含一下Frm03的头文件
#include "Frm03.h"
...
void Frm34::wMButton1_clk_cb(uint16_t code, LvEvent e) {
/*wMButton1(功能键)的点击事件*/
//1. 先获取ID="Frm03"的页面对象
STTPage* pg = pm->getPage("Frm03");
//2. 如果为空,则返回!! 非常重要!!
if(!pg) return;
//3. 将ID="Frm03"的页面对象转换为Frm03的实例对象
Frm03* frm03 = (Frm03*)pg;
//4. 转换后,就可以直接操作Frm03里面的控件或调用里面的方法
frm03->wMButton1->setTitle("0", "松开了");
}
2.4 获取最上页
用法与2.3类似。
3. 注意事项
1. 页面打开操作时会导致页面发生跳转,必须放到函数的最后一行!!
2. 不能在跳转后继续执行其它操作。