菜单

2.2.1 程序中页面操作

下载

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. 不能在跳转后继续执行其它操作。

最近修改: 2025-02-05Powered by