我正在为 C++ 中的 mbed 微控制器开发 GUI,但遇到了一些问题。
情况是:具有小部件虚拟父功能的不同小部件类(按钮、滑块...)。然后是带有(gridLayout,...)等类的虚函数布局。布局具有类似 layout.add(*widget) 的功能,可将小部件指针添加到向量。然后我有一个控制器函数来处理触摸事件并使用当前活动布局来检查在触摸的 x,y 坐标处的布局中正确的小部件是什么。
现在我想在小部件类中添加一个指向布局的指针,以便控制器类可以在需要时更改 activeLayout。还有一个函数指针,因此控制器可以在使用小部件时运行某个函数。
现在的问题:我想做这样的事情:
Button::Button(char* text_, int color_, void *function_, Layout *layout_): text(text_), color(color_), function(function_), layout(layout_){}
但是后来我需要包含布局类,而布局类已经包含了小部件类-->错误!最简单的方法是什么?我已经尝试过 void* 指针,然后对 Layout 进行静态转换,但这没有用。
我还需要在每个小部件和布局中包含一个 TFT 类,最简单的方法是什么?现在我只有一个 Display.h :
#ifndef DISPLAY_H
#define DISPLAY_H
static SPI_TFT Screen(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"Screen");
#endif
但我真的不认为这是做这样的事情的正确方法。
非常感谢您的帮助!