我正在评估 STM32 平台之外的 TouchGFX 工具。一切正常,就像与 STM32F746G-Discovery 板的一些硬件资源的交互一样,但还有另一个问题。
我创建了一个自定义键盘(如 TouchGFX 示例中所示),但即使在我进入最后一个屏幕之前,它应该是可见的,它出现在之前的屏幕上。我检查了两个屏幕的 View.hpp/.cpp 和 ViewBase.hpp/.cpp,我不知道为什么会这样。
Screen3View.hpp(键盘应该可见的地方)
#ifndef SCREEN3VIEW_HPP
#define SCREEN3VIEW_HPP
#include <gui_generated/screen3_screen/Screen3ViewBase.hpp>
#include <gui/screen3_screen/Screen3Presenter.hpp>
#include <gui_generated/screen3_screen/Screen3ViewBase.hpp>
#include <gui/screen3_screen/Screen3Presenter.hpp>
#include <gui/common/CustomKeyboard.hpp>
#include <touchgfx/widgets/ButtonWithLabel.hpp>
class Screen3View : public Screen3ViewBase
{
public:
Screen3View();
virtual ~Screen3View() {}
virtual void setupScreen();
virtual void tearDownScreen();
protected:
CustomKeyboard keyboard;
};
#endif // SCREEN3VIEW_HPP
Screen3View.cpp
Screen3View::Screen3View()
{
keyboard.setPosition(16, 16, 400, 240);
add(keyboard);
}
Screen4View.hpp(键盘不可见的地方)
#ifndef SCREEN4VIEW_HPP
#define SCREEN4VIEW_HPP
#include <gui_generated/screen4_screen/Screen4ViewBase.hpp>
#include <gui/screen4_screen/Screen4Presenter.hpp>
class Screen4View : public Screen4ViewBase
{
public:
Screen4View();
virtual ~Screen4View() {}
virtual void setupScreen();
virtual void tearDownScreen();
protected:
};
#endif // SCREEN4VIEW_HPP
Screen4View.cpp
Screen4View::Screen4View()
{
}
TouchGFX 文件的所有 other.cpp “说” 完全相同的事情。只有屏幕 3 应该有这个键盘,而不是屏幕 4。
因此,如果有人知道为什么会这样,请回答。:)
非常感谢。