我正在评估STM32-Platform之外的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。
因此,如果有人知道为什么会这样,请回答。 :)
非常感谢。